diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-24 13:52:56 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-24 13:52:56 +0200 |
| commit | fefec929c59c72dc93e4be30e8f23cd8c5258b0a (patch) | |
| tree | e35d2e050a9052384e52a5ccb623d8dd193c2370 /app/controllers/users_controller.rb | |
| parent | cd36a46bbb5679ded1653f65bf4e8a74ae55100c (diff) | |
Add self-service TOTP enrollment UI and witnessed admin reset
Diffstat (limited to 'app/controllers/users_controller.rb')
| -rw-r--r-- | app/controllers/users_controller.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 6572b7a2..08541b0c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb | |||
| @@ -3,7 +3,7 @@ class UsersController < ApplicationController | |||
| 3 | # Private | 3 | # Private |
| 4 | 4 | ||
| 5 | before_action :login_required | 5 | before_action :login_required |
| 6 | before_action :find_user, :only => [:show, :edit, :update, :destroy] | 6 | before_action :find_user, :only => [:show, :edit, :update, :destroy, :reset_otp] |
| 7 | before_action :verify_status, :except => [:index, :show] | 7 | before_action :verify_status, :except => [:index, :show] |
| 8 | 8 | ||
| 9 | layout 'admin' | 9 | layout 'admin' |
| @@ -52,6 +52,13 @@ class UsersController < ApplicationController | |||
| 52 | redirect_to users_path | 52 | redirect_to users_path |
| 53 | end | 53 | end |
| 54 | 54 | ||
| 55 | def reset_otp | ||
| 56 | return deny_user_access unless current_user.admin? | ||
| 57 | @user.disable_otp!(:actor => current_user) | ||
| 58 | flash[:notice] = "Second factor reset for #{@user.login}" | ||
| 59 | redirect_to edit_user_path(@user) | ||
| 60 | end | ||
| 61 | |||
| 55 | private | 62 | private |
| 56 | 63 | ||
| 57 | def user_params | 64 | def user_params |
