Browse Source

Update SecuritySettings Controller, add 2FA backup code regeneration

Daniel Supernault 6 years ago
parent
commit
2eff42bd76
1 changed files with 13 additions and 0 deletions
  1. 13 0
      app/Http/Controllers/Settings/SecuritySettings.php

+ 13 - 0
app/Http/Controllers/Settings/SecuritySettings.php

@@ -110,6 +110,19 @@ trait SecuritySettings
 		return view('settings.security.2fa.recovery-codes', compact('user', 'codes'));
 		return view('settings.security.2fa.recovery-codes', compact('user', 'codes'));
 	}
 	}
 
 
+	public function securityTwoFactorRecoveryCodesRegenerate(Request $request)
+	{
+		$user = Auth::user();
+
+		if(!$user->{'2fa_enabled'} || !$user->{'2fa_secret'}) {
+			abort(403);
+		}
+		$backups = $this->generateBackupCodes();
+		$user->{'2fa_backup_codes'} = json_encode($backups);
+		$user->save();
+		return redirect(route('settings.security.2fa.recovery'));
+	}
+
 	public function securityTwoFactorUpdate(Request $request)
 	public function securityTwoFactorUpdate(Request $request)
 	{
 	{
 		$user = Auth::user();
 		$user = Auth::user();