Move "everyone" role and "instance actor" account magic number IDs to constants (#29260)

This commit is contained in:
Matt Jankowski 2024-02-19 06:09:43 -05:00 committed by GitHub
parent 96ddf1d482
commit 245064bb98
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 26 additions and 19 deletions

View file

@ -5,6 +5,8 @@ class AddInstanceActor < ActiveRecord::Migration[5.2]
# Dummy class, to make migration possible across version changes
validates :username, uniqueness: { scope: :domain, case_sensitive: false }
INSTANCE_ACTOR_ID = -99
before_create :generate_keys
def generate_keys
@ -15,10 +17,10 @@ class AddInstanceActor < ActiveRecord::Migration[5.2]
end
def up
Account.create!(id: -99, actor_type: 'Application', locked: true, username: Rails.configuration.x.local_domain)
Account.create!(id: Account::INSTANCE_ACTOR_ID, actor_type: 'Application', locked: true, username: Rails.configuration.x.local_domain)
end
def down
Account.find_by(id: -99, actor_type: 'Application').destroy!
Account.find_by(id: Account::INSTANCE_ACTOR_ID, actor_type: 'Application').destroy!
end
end

View file

@ -3,7 +3,9 @@
class MigrateSettingsToUserRoles < ActiveRecord::Migration[6.1]
disable_ddl_transaction!
class UserRole < ApplicationRecord; end
class UserRole < ApplicationRecord
EVERYONE_ROLE_ID = -99
end
def up
process_role_everyone
@ -17,7 +19,7 @@ class MigrateSettingsToUserRoles < ActiveRecord::Migration[6.1]
private
def process_role_everyone
everyone_role = UserRole.find_by(id: -99)
everyone_role = UserRole.find_by(id: UserRole::EVERYONE_ROLE_ID)
return unless everyone_role
everyone_role.permissions &= ~::UserRole::FLAGS[:invite_users] unless min_invite_role == 'user'

View file

@ -1,3 +1,3 @@
# frozen_string_literal: true
Account.create_with(actor_type: 'Application', locked: true, username: 'mastodon.internal').find_or_create_by(id: -99)
Account.create_with(actor_type: 'Application', locked: true, username: 'mastodon.internal').find_or_create_by(id: Account::INSTANCE_ACTOR_ID)