Merge pull request #5293 from AntonKhorev/user-roles-resourceful-routes

Use resourceful routes for granting/revoking user roles
This commit is contained in:
Andy Allan 2024-11-13 18:45:16 +00:00 committed by GitHub
commit cdf9634d08
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 59 additions and 58 deletions

View file

@ -6,9 +6,10 @@ module UserMethods
##
# ensure that there is a "user" instance variable
def lookup_user
@user = User.active.find_by!(:display_name => params[:display_name])
display_name = params[:display_name] || params[:user_display_name]
@user = User.active.find_by!(:display_name => display_name)
rescue ActiveRecord::RecordNotFound
render_unknown_user params[:display_name]
render_unknown_user display_name
end
##

View file

@ -9,15 +9,15 @@ class UserRolesController < ApplicationController
before_action :lookup_user
before_action :require_valid_role
before_action :not_in_role, :only => [:grant]
before_action :in_role, :only => [:revoke]
before_action :not_in_role, :only => :create
before_action :in_role, :only => :destroy
def grant
def create
@user.roles.create(:role => @role, :granter => current_user)
redirect_to user_path(@user)
end
def revoke
def destroy
# checks that administrator role is not revoked from current user
if current_user == @user && @role == "administrator"
flash[:error] = t("user_role.filter.not_revoke_admin_current_user")