[Small Win] Assign 'trusted' role when user updated to Admin or SuperAdmin (#15215)
* Bada bing, bada boom! 💥
* Give default admin user "trusted" role
* fix failing spec
This commit is contained in:
parent
0fab8d6634
commit
20c164ce40
4 changed files with 25 additions and 3 deletions
|
|
@ -72,10 +72,12 @@ module Moderator
|
|||
check_super_admin
|
||||
remove_negative_roles
|
||||
user.add_role(:admin)
|
||||
TagModerators::AddTrustedRole.call(user)
|
||||
when "Super Admin"
|
||||
check_super_admin
|
||||
remove_negative_roles
|
||||
user.add_role(:super_admin)
|
||||
TagModerators::AddTrustedRole.call(user)
|
||||
when "Tech Admin"
|
||||
check_super_admin
|
||||
remove_negative_roles
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@ seeder.create_if_doesnt_exist(User, "email", "admin@forem.local") do
|
|||
)
|
||||
|
||||
user.add_role(:super_admin)
|
||||
user.add_role(:trusted)
|
||||
user.add_role(:tech_admin)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -149,8 +149,7 @@ RSpec.describe "Admin::Users", type: :request do
|
|||
params = { user: { user_status: "Super Admin", note_for_current_role: "they deserve it for some reason" } }
|
||||
patch user_status_admin_user_path(user.id), params: params
|
||||
|
||||
expect(user.roles.count).to eq(1)
|
||||
expect(user.roles.last.name).to eq("super_admin")
|
||||
expect(user.has_role?(:super_admin)).to be(true)
|
||||
end
|
||||
|
||||
it "does not allow non-super-admin to doll out admin" do
|
||||
|
|
|
|||
|
|
@ -25,15 +25,35 @@ RSpec.describe Moderator::ManageActivityAndRoles, type: :service do
|
|||
expect(user.has_role?(:super_admin)).to be true
|
||||
end
|
||||
|
||||
it "assigns trusted role to user that's updated to super admin" do
|
||||
described_class.handle_user_roles(
|
||||
admin: admin,
|
||||
user: user,
|
||||
user_params: { note_for_current_role: "Upgrading to super admin", user_status: "Super Admin" },
|
||||
)
|
||||
expect(user.has_role?(:super_admin)).to be true
|
||||
expect(user.has_role?(:trusted)).to be true
|
||||
end
|
||||
|
||||
it "updates user to admin" do
|
||||
described_class.handle_user_roles(
|
||||
admin: admin,
|
||||
user: user,
|
||||
user_params: { note_for_current_role: "Upgrading to super admin", user_status: "Admin" },
|
||||
user_params: { note_for_current_role: "Upgrading to admin", user_status: "Admin" },
|
||||
)
|
||||
expect(user.has_role?(:admin)).to be true
|
||||
end
|
||||
|
||||
it "assigns trusted role to user that's updated to admin" do
|
||||
described_class.handle_user_roles(
|
||||
admin: admin,
|
||||
user: user,
|
||||
user_params: { note_for_current_role: "Upgrading to admin", user_status: "Admin" },
|
||||
)
|
||||
expect(user.has_role?(:admin)).to be true
|
||||
expect(user.has_role?(:trusted)).to be true
|
||||
end
|
||||
|
||||
it "updates user to tech admin" do
|
||||
described_class.handle_user_roles(
|
||||
admin: admin,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue