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);
 |