[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:
Arit Amana 2021-10-28 15:28:25 -04:00 committed by GitHub
parent 0fab8d6634
commit 20c164ce40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 3 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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,