diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-11-11 20:23:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-11 20:23:33 +0100 |
commit | 7bb8b0b2fc0e2e42a4234fed18198cbb7439fe9f (patch) | |
tree | f629ef40a5e7253c3d7bf353959951c93e5aad6f /app/controllers/admin/roles_controller.rb | |
parent | 2b1190065c54f071ae384f6e05b4a087987febba (diff) |
Add moderator role and add pundit policies for admin actions (#5635)
* Add moderator role and add pundit policies for admin actions
* Add rake task for turning user into mod and revoking it again
* Fix handling of unauthorized exception
* Deliver new report e-mails to staff, not just admins
* Add promote/demote to admin UI, hide some actions conditionally
* Fix unused i18n
Diffstat (limited to 'app/controllers/admin/roles_controller.rb')
-rw-r--r-- | app/controllers/admin/roles_controller.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/controllers/admin/roles_controller.rb b/app/controllers/admin/roles_controller.rb new file mode 100644 index 00000000000..8f86858279f --- /dev/null +++ b/app/controllers/admin/roles_controller.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Admin + class RolesController < BaseController + before_action :set_user + + def promote + authorize @user, :promote? + @user.promote! + redirect_to admin_account_path(@user.account_id) + end + + def demote + authorize @user, :demote? + @user.demote! + redirect_to admin_account_path(@user.account_id) + end + + private + + def set_user + @user = Account.find(params[:account_id]).user || raise(ActiveRecord::RecordNotFound) + end + end +end |