Skip to content

Commit

Permalink
Add user:2fa command to easily disable 2FA for given account
Browse files Browse the repository at this point in the history
  • Loading branch information
dansup committed Oct 11, 2023
1 parent 457d545 commit c6408fd
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions app/Console/Commands/UserToggle2FA.php
@@ -0,0 +1,55 @@
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Contracts\Console\PromptsForMissingInput;
use App\User;

class UserToggle2FA extends Command implements PromptsForMissingInput
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'user:2fa {username}';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Disable two factor authentication for given username';

/**
* Prompt for missing input arguments using the returned questions.
*
* @return array
*/
protected function promptForMissingArgumentsUsing()
{
return [
'username' => 'Which username should we disable 2FA for?',
];
}
/**
* Execute the console command.
*/
public function handle()
{
$user = User::whereUsername($this->argument('username'))->first();

if(!$user->{'2fa_enabled'}) {
$this->info('User did not have 2FA enabled!');
return;
}

$user->{'2fa_enabled'} = false;
$user->{'2fa_secret'} = null;
$user->{'2fa_backup_codes'} = null;
$user->save();

$this->info('Successfully disabled 2FA on this account!');
}
}

0 comments on commit c6408fd

Please sign in to comment.