Fix #4795: The first user created will not be an administrator account.
This commit is contained in:
@@ -110,7 +110,7 @@ class User < ApplicationRecord
|
|||||||
validates_confirmation_of :password
|
validates_confirmation_of :password
|
||||||
validates :comment_threshold, inclusion: { in: (-100..5) }
|
validates :comment_threshold, inclusion: { in: (-100..5) }
|
||||||
before_validation :normalize_blacklisted_tags
|
before_validation :normalize_blacklisted_tags
|
||||||
before_create :promote_to_admin_if_first_user
|
before_create :promote_to_owner_if_first_user
|
||||||
has_many :artist_versions, foreign_key: :updater_id
|
has_many :artist_versions, foreign_key: :updater_id
|
||||||
has_many :artist_commentary_versions, foreign_key: :updater_id
|
has_many :artist_commentary_versions, foreign_key: :updater_id
|
||||||
has_many :comments, foreign_key: :creator_id
|
has_many :comments, foreign_key: :creator_id
|
||||||
@@ -290,11 +290,11 @@ class User < ApplicationRecord
|
|||||||
UserPromotion.new(self, promoter, new_level, **options).promote!
|
UserPromotion.new(self, promoter, new_level, **options).promote!
|
||||||
end
|
end
|
||||||
|
|
||||||
def promote_to_admin_if_first_user
|
def promote_to_owner_if_first_user
|
||||||
return if Rails.env.test?
|
return if Rails.env.test?
|
||||||
|
|
||||||
if User.admins.count == 0
|
if name != Danbooru.config.system_user && !User.where(level: Levels::OWNER).exists?
|
||||||
self.level = Levels::ADMIN
|
self.level = Levels::OWNER
|
||||||
self.can_approve_posts = true
|
self.can_approve_posts = true
|
||||||
self.can_upload_free = true
|
self.can_upload_free = true
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user