 2022a70e16
			
		
	
	2022a70e16
	
	
	
		
			
			Summary: Ref T4749. Ref T3265. Ref T4909. Several goals here: - Move user destruction to the CLI to limit the power of rogue admins. - Start consolidating all "destroy named object" scripts into a single UI, to make it easier to know how to destroy things. - Structure object destruction so we can do a better and more automatic job of cleaning up transactions, edges, search indexes, etc. - Log when we destroy objects so there's a record if data goes missing. Test Plan: Used `bin/remove destroy` to destroy several users. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T3265, T4749, T4909 Differential Revision: https://secure.phabricator.com/D8940
		
			
				
	
	
		
			22 lines
		
	
	
		
			583 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			583 B
		
	
	
	
		
			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('remove objects');
 | |
| $args->setSynopsis(<<<EOSYNOPSIS
 | |
| **remove** __command__ [__options__]
 | |
|     Administrative tool for destroying objects permanently.
 | |
| 
 | |
| EOSYNOPSIS
 | |
|   );
 | |
| $args->parseStandardArguments();
 | |
| 
 | |
| $workflows = id(new PhutilSymbolLoader())
 | |
|   ->setAncestorClass('PhabricatorSystemRemoveWorkflow')
 | |
|   ->loadObjects();
 | |
| $workflows[] = new PhutilHelpArgumentWorkflow();
 | |
| $args->parseWorkflows($workflows);
 |