Added the creator role for the first Forem instance admin (#14583)

Co-authored-by: Jamie Gaskins <jamie@forem.com>
This commit is contained in:
Nick Taylor 2021-08-26 13:50:21 -04:00 committed by GitHub
parent 015a9c1923
commit 5e5e3eda42
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 1 deletions

View file

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

View file

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

View file

@ -0,0 +1,7 @@
module DataUpdateScripts
class BackfillCreatorRoleForFirstSuperAdmin
def run
User.with_role(:super_admin).first&.add_role(:creator)
end
end
end

View file

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

View file

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