File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -208,4 +208,17 @@ public function destroy(Request $request, int $id)
208208
209209 return redirect ('/settings/users ' );
210210 }
211+
212+ /**
213+ * Reset MFA for the specified user.
214+ */
215+ public function resetMfa (Request $ request , int $ id )
216+ {
217+ $ this ->checkPermission (Permission::UsersManage);
218+ $ user = $ this ->userRepo ->getById ($ id );
219+ // Resetear el 2FA del usuario
220+ $ user ->mfaValues ()->delete ();
221+ session ()->flash ('success ' , trans ('settings.users_mfa_reset_success ' , ['userName ' => $ user ->name ]));
222+ return redirect ()->back ();
223+ }
211224}
Original file line number Diff line number Diff line change 263263 'users_mfa_desc ' => 'Setup multi-factor authentication as an extra layer of security for your user account. ' ,
264264 'users_mfa_x_methods ' => ':count method configured|:count methods configured ' ,
265265 'users_mfa_configure ' => 'Configure Methods ' ,
266+ 'users_mfa_reset ' => 'Reset 2FA ' ,
267+ 'users_mfa_reset_desc ' => 'Reset and clear all configured MFA methods for :userName. They will be prompted to reconfigure on next login. ' ,
268+ 'users_mfa_reset_confirm ' => 'Are you sure you want to reset 2FA for :userName? ' ,
269+ 'users_mfa_reset_success ' => '2FA has been reset for :userName ' ,
270+ 'users_mfa_reset_error ' => 'Failed to reset 2FA for :userName ' ,
266271
267272 // API Tokens
268273 'user_api_token_create ' => 'Create API Token ' ,
Original file line number Diff line number Diff line change @@ -71,6 +71,26 @@ class="button outline">{{ trans('settings.users_mfa_configure') }}</a>
7171 </div >
7272 </div >
7373
74+ @if (user ()-> hasSystemRole (' admin' ) )
75+ <div class =" mt-xl" >
76+ <hr class =" my-m" >
77+ <div class =" grid half gap-xl v-center" >
78+ <div >
79+ <strong class =" text-neg" >{{ trans (' settings.users_mfa_reset' ) } } </strong >
80+ <p class =" text-small text-muted" >{{ trans (' settings.users_mfa_reset_desc' , [' userName' => $user -> name ]) } } </p >
81+ </div >
82+ <div class =" text-m-right" >
83+ <form action =" {{ url (" /settings/users/{$user -> id }/reset-mfa" ) } }" method =" POST" style =" display : inline ;" >
84+ @csrf
85+ <button type =" submit" class =" button neg"
86+ onclick =" return confirm('{{ trans (' settings.users_mfa_reset_confirm' , [' userName' => $user -> name ]) } } ')" >
87+ {{ trans (' settings.users_mfa_reset' ) } }
88+ </button >
89+ </form >
90+ </div >
91+ </div >
92+ </div >
93+ @endif
7494 </section >
7595
7696 @if (count ($activeSocialDrivers ) > 0 )
Original file line number Diff line number Diff line change 251251 Route::get ('/settings/users/{id} ' , [UserControllers \UserController::class, 'edit ' ]);
252252 Route::put ('/settings/users/{id} ' , [UserControllers \UserController::class, 'update ' ]);
253253 Route::delete ('/settings/users/{id} ' , [UserControllers \UserController::class, 'destroy ' ]);
254+ Route::post ('/settings/users/{id}/reset-mfa ' , [UserControllers \UserController::class, 'resetMfa ' ]);
254255
255256 // User Account
256257 Route::get ('/my-account ' , [UserControllers \UserAccountController::class, 'redirect ' ]);
You can’t perform that action at this time.
0 commit comments