Revoking administrator role on current user should fail
Fixes #1697 Closes #1701
This commit is contained in:
parent
965123372d
commit
e21c967fdd
3 changed files with 12 additions and 1 deletions
|
@ -15,7 +15,12 @@ class UserRolesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def revoke
|
def revoke
|
||||||
UserRole.where(:user_id => @this_user.id, :role => @role).delete_all
|
# checks that administrator role is not revoked from current user
|
||||||
|
if current_user == @this_user && @role == "administrator"
|
||||||
|
flash[:error] = t("user_role.filter.not_revoke_admin_current_user")
|
||||||
|
else
|
||||||
|
UserRole.where(:user_id => @this_user.id, :role => @role).delete_all
|
||||||
|
end
|
||||||
redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
|
redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2036,6 +2036,7 @@ en:
|
||||||
not_a_role: "The string `%{role}' is not a valid role."
|
not_a_role: "The string `%{role}' is not a valid role."
|
||||||
already_has_role: "The user already has role %{role}."
|
already_has_role: "The user already has role %{role}."
|
||||||
doesnt_have_role: "The user does not have role %{role}."
|
doesnt_have_role: "The user does not have role %{role}."
|
||||||
|
not_revoke_admin_current_user: "Cannot revoke administrator role from current user."
|
||||||
grant:
|
grant:
|
||||||
title: Confirm role granting
|
title: Confirm role granting
|
||||||
heading: Confirm role granting
|
heading: Confirm role granting
|
||||||
|
|
|
@ -134,5 +134,10 @@ class UserRolesControllerTest < ActionController::TestCase
|
||||||
end
|
end
|
||||||
assert_redirected_to user_path(target_user.display_name)
|
assert_redirected_to user_path(target_user.display_name)
|
||||||
assert_equal "The string `no_such_role' is not a valid role.", flash[:error]
|
assert_equal "The string `no_such_role' is not a valid role.", flash[:error]
|
||||||
|
|
||||||
|
# Revoking administrator role from current user should fail
|
||||||
|
post :revoke, :params => { :display_name => administrator_user.display_name, :role => "administrator" }
|
||||||
|
assert_redirected_to user_path(administrator_user.display_name)
|
||||||
|
assert_equal "Cannot revoke administrator role from current user.", flash[:error]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue