You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							76 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							76 lines
						
					
					
						
							1.6 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace App\Console\Commands; | |
| 
 | |
| use Illuminate\Console\Command; | |
| use App\Models\User; | |
| use App\Jobs\DeletePipeline\DeleteAccountPipeline; | |
| 
 | |
| class UserDelete extends Command | |
| { | |
|     /** | |
|      * The name and signature of the console command. | |
|      * | |
|      * @var string | |
|      */ | |
|     protected $signature = 'user:delete {id} {--force}'; | |
| 
 | |
|     /** | |
|      * The console command description. | |
|      * | |
|      * @var string | |
|      */ | |
|     protected $description = 'Delete account'; | |
| 
 | |
|     /** | |
|      * Create a new command instance. | |
|      * | |
|      * @return void | |
|      */ | |
|     public function __construct() | |
|     { | |
|         parent::__construct(); | |
|     } | |
| 
 | |
|     /** | |
|      * Execute the console command. | |
|      * | |
|      * @return mixed | |
|      */ | |
|     public function handle() | |
|     { | |
|         $id = $this->argument('id'); | |
|         $force = $this->option('force'); | |
| 
 | |
|         if(ctype_digit($id) == true) { | |
|             $user = User::find($id); | |
|         } else { | |
|             $user = User::whereUsername($id)->first(); | |
|         } | |
| 
 | |
|         if(!$user) { | |
|             $this->error('Could not find any user with that username or id.'); | |
|             exit; | |
|         } | |
| 
 | |
|         if($user->is_admin == true) { | |
|             $this->error('Cannot delete an admin account from CLI.'); | |
|             exit; | |
|         } | |
| 
 | |
|         if(!$this->confirm('Are you sure you want to delete this account?')) { | |
|             exit; | |
|         } | |
| 
 | |
|         $confirmation = $this->ask('Enter the username to confirm deletion'); | |
| 
 | |
|         if($confirmation !== $user->username) { | |
|             $this->error('Username does not match, exiting...'); | |
|             exit; | |
|         } | |
| 
 | |
|             $user->delete(); | |
| 	    $this->error('User deleted'); | |
| 
 | |
|     } | |
| }
 |