Merge branch 'feature-579' of git://github.com/Abijeet/BookStack into Abijeet-feature-579
This commit is contained in:
		
						commit
						3eb2246291
					
				| 
						 | 
				
			
			@ -0,0 +1,62 @@
 | 
			
		|||
<?php
 | 
			
		||||
 | 
			
		||||
namespace BookStack\Console\Commands;
 | 
			
		||||
 | 
			
		||||
use BookStack\User;
 | 
			
		||||
use BookStack\Repos\UserRepo;
 | 
			
		||||
use Illuminate\Console\Command;
 | 
			
		||||
 | 
			
		||||
class DeleteUsers extends Command{
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The name and signature of the console command.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $signature = 'bookstack:delete-users';
 | 
			
		||||
 | 
			
		||||
    protected $user;
 | 
			
		||||
 | 
			
		||||
    protected $userRepo;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The console command description.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $description = 'Delete users that are not "admin" or system users.';
 | 
			
		||||
 | 
			
		||||
    public function __construct(User $user, UserRepo $userRepo)
 | 
			
		||||
    {
 | 
			
		||||
        $this->user = $user;
 | 
			
		||||
        $this->userRepo = $userRepo;
 | 
			
		||||
        parent::__construct();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function handle()
 | 
			
		||||
    {
 | 
			
		||||
        $confirm = $this->ask('This will delete all users from the system that are not "admin" or system users. Are you sure you want to continue? (Type "yes" to continue)');
 | 
			
		||||
        $numDeleted = 0;
 | 
			
		||||
        if (strtolower(trim($confirm)) === 'yes')
 | 
			
		||||
        {
 | 
			
		||||
            $totalUsers = User::count();
 | 
			
		||||
            $users = $this->user->where('system_name', '=', null)->with('roles')->get();
 | 
			
		||||
            foreach ($users as $user)
 | 
			
		||||
            {
 | 
			
		||||
                if ($user->hasRole('admin'))
 | 
			
		||||
                {
 | 
			
		||||
                    // don't delete users with "admin" role
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                $this->userRepo->destroy($user);
 | 
			
		||||
                ++$numDeleted;
 | 
			
		||||
            }
 | 
			
		||||
            $this->info("Deleted $numDeleted of $totalUsers total users.");
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            $this->info('Exiting...');
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
 | 
			
		|||
     */
 | 
			
		||||
    public function hasSystemRole($role)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->roles->pluck('system_name')->contains('admin');
 | 
			
		||||
        return $this->roles->pluck('system_name')->contains($role);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue