Added the creator role for the first Forem instance admin (#14583)
Co-authored-by: Jamie Gaskins <jamie@forem.com>
This commit is contained in:
parent
015a9c1923
commit
5e5e3eda42
5 changed files with 25 additions and 1 deletions
|
|
@ -40,6 +40,7 @@ class RegistrationsController < Devise::RegistrationsController
|
|||
def update_first_user_permissions(resource)
|
||||
return unless Settings::General.waiting_on_first_user
|
||||
|
||||
resource.add_role(:creator)
|
||||
resource.add_role(:super_admin)
|
||||
resource.add_role(:trusted)
|
||||
resource.skip_confirmation!
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class Role < ApplicationRecord
|
|||
trusted
|
||||
warned
|
||||
workshop_pass
|
||||
creator
|
||||
].freeze
|
||||
|
||||
has_and_belongs_to_many :users, join_table: :users_roles # rubocop:disable Rails/HasAndBelongsToMany
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
module DataUpdateScripts
|
||||
class BackfillCreatorRoleForFirstSuperAdmin
|
||||
def run
|
||||
User.with_role(:super_admin).first&.add_role(:creator)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
require "rails_helper"
|
||||
require Rails.root.join(
|
||||
"lib/data_update_scripts/20210824202334_backfill_creator_role_for_first_super_admin",
|
||||
)
|
||||
|
||||
describe DataUpdateScripts::BackfillCreatorRoleForFirstSuperAdmin do
|
||||
let!(:creator) { create(:user, :super_admin) }
|
||||
let!(:admin) { create(:user, :super_admin) }
|
||||
|
||||
it "Only the first super admin should have the creator role" do
|
||||
described_class.new.run
|
||||
expect(creator).to have_role(:creator)
|
||||
expect(admin).not_to have_role(:creator)
|
||||
end
|
||||
end
|
||||
|
|
@ -10,7 +10,7 @@ RSpec.describe Role, type: :model do
|
|||
expected_roles = %w[
|
||||
admin chatroom_beta_tester codeland_admin comment_suspended mod_relations_admin podcast_admin
|
||||
restricted_liquid_tag single_resource_admin super_admin support_admin suspended tag_moderator tech_admin
|
||||
trusted warned workshop_pass
|
||||
trusted warned workshop_pass creator
|
||||
]
|
||||
expect(described_class::ROLES).to eq(expected_roles)
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue