diff options
Diffstat (limited to 'app/controllers/users_controller.rb')
| -rw-r--r-- | app/controllers/users_controller.rb | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 95dff220..7bf23f17 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb | |||
| @@ -4,7 +4,7 @@ class UsersController < ApplicationController | |||
| 4 | # Private | 4 | # Private |
| 5 | 5 | ||
| 6 | before_action :login_required | 6 | before_action :login_required |
| 7 | before_action :find_user, :only => [:show, :edit, :update, :destroy, :reset_otp] | 7 | before_action :find_user, :only => [:show, :edit, :update, :reset_otp, :deactivate, :reactivate] |
| 8 | before_action :verify_status, :except => [:index, :show] | 8 | before_action :verify_status, :except => [:index, :show] |
| 9 | 9 | ||
| 10 | layout 'admin' | 10 | layout 'admin' |
| @@ -53,8 +53,25 @@ class UsersController < ApplicationController | |||
| 53 | def show | 53 | def show |
| 54 | end | 54 | end |
| 55 | 55 | ||
| 56 | def destroy | 56 | def deactivate |
| 57 | @user.destroy if @user | 57 | return deny_user_access unless current_user.is_admin? |
| 58 | |||
| 59 | if @user == current_user | ||
| 60 | flash[:error] = t("flash.users.cannot_deactivate_self") | ||
| 61 | elsif @user.deactivate!(:actor => current_user) | ||
| 62 | flash[:notice] = t("flash.users.deactivated", :login => @user.login) | ||
| 63 | end | ||
| 64 | |||
| 65 | redirect_to users_path | ||
| 66 | end | ||
| 67 | |||
| 68 | def reactivate | ||
| 69 | return deny_user_access unless current_user.is_admin? | ||
| 70 | |||
| 71 | if @user.reactivate!(:actor => current_user) | ||
| 72 | flash[:notice] = t("flash.users.reactivated", :login => @user.login) | ||
| 73 | end | ||
| 74 | |||
| 58 | redirect_to users_path | 75 | redirect_to users_path |
| 59 | end | 76 | end |
| 60 | 77 | ||
