 12aaa942ac
			
		
	
	12aaa942ac
	
	
	
		
			
			Summary: CanCDN flag indicates that a file can be served + cached via anonymous content distribution networks. Once D10054 lands, any files that lack the CanCDN flag will require a one-time-use token and headers will prohibit cache to protect sensitive files from unauthorized access. This diff separates the CanCDN changes from the code that enforces these restrictions in D10054 so that the changes can be tested and refined independently. Test Plan: Work in progress Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: rush898, qgil, epriestley, aklapper, Korvin Maniphest Tasks: T5685 Differential Revision: https://secure.phabricator.com/D10166
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env php
 | |
| <?php
 | |
| 
 | |
| $root = dirname(dirname(dirname(__FILE__)));
 | |
| require_once $root.'/scripts/__init_script__.php';
 | |
| 
 | |
| $args = new PhutilArgumentParser($argv);
 | |
| $args->setTagline('load files as image macros');
 | |
| $args->setSynopsis(<<<EOHELP
 | |
| **add_macro.php** __image__ [--as __name__]
 | |
|     Add an image macro. This can be useful for importing a large number
 | |
|     of macros.
 | |
| EOHELP
 | |
| );
 | |
| $args->parseStandardArguments();
 | |
| 
 | |
| $args->parse(
 | |
|   array(
 | |
|     array(
 | |
|       'name'  => 'as',
 | |
|       'param' => 'name',
 | |
|       'help'  => 'Use a specific name instead of the first part of the image '.
 | |
|                  'name.',
 | |
|     ),
 | |
|     array(
 | |
|       'name'      => 'more',
 | |
|       'wildcard'  => true,
 | |
|     ),
 | |
|   ));
 | |
| 
 | |
| $more = $args->getArg('more');
 | |
| if (count($more) !== 1) {
 | |
|   $args->printHelpAndExit();
 | |
| }
 | |
| 
 | |
| $path = head($more);
 | |
| $data = Filesystem::readFile($path);
 | |
| 
 | |
| $name = $args->getArg('as');
 | |
| if ($name === null) {
 | |
|   $name = head(explode('.', basename($path)));
 | |
| }
 | |
| 
 | |
| $existing = id(new PhabricatorFileImageMacro())->loadOneWhere(
 | |
|   'name = %s',
 | |
|   $name);
 | |
| if ($existing) {
 | |
|   throw new Exception("A macro already exists with the name '{$name}'!");
 | |
| }
 | |
| 
 | |
| $file = PhabricatorFile::newFromFileData(
 | |
|   $data,
 | |
|   array(
 | |
|     'name' => basename($path),
 | |
|     'canCDN' => true,
 | |
|   ));
 | |
| 
 | |
| $macro = id(new PhabricatorFileImageMacro())
 | |
|   ->setFilePHID($file->getPHID())
 | |
|   ->setName($name)
 | |
|   ->save();
 | |
| 
 | |
| $id = $file->getID();
 | |
| 
 | |
| echo "Added macro '{$name}' (F{$id}).\n";
 |