diff options
Diffstat (limited to 'app/models/members/member_role.rb')
-rw-r--r-- | app/models/members/member_role.rb | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/app/models/members/member_role.rb b/app/models/members/member_role.rb deleted file mode 100644 index 42ce228c318..00000000000 --- a/app/models/members/member_role.rb +++ /dev/null @@ -1,49 +0,0 @@ -# frozen_string_literal: true - -class MemberRole < ApplicationRecord # rubocop:disable Gitlab/NamespacedClass - include IgnorableColumns - ignore_column :download_code, remove_with: '15.9', remove_after: '2023-01-22' - - has_many :members - belongs_to :namespace - - validates :namespace, presence: true - validates :base_access_level, presence: true - validate :belongs_to_top_level_namespace - validate :validate_namespace_locked, on: :update - validate :attributes_locked_after_member_associated, on: :update - - validates_associated :members - - before_destroy :prevent_delete_after_member_associated - - private - - def belongs_to_top_level_namespace - return if !namespace || namespace.root? - - errors.add(:namespace, s_("MemberRole|must be top-level namespace")) - end - - def validate_namespace_locked - return unless namespace_id_changed? - - errors.add(:namespace, s_("MemberRole|can't be changed")) - end - - def attributes_locked_after_member_associated - return unless members.present? - - errors.add(:base, s_("MemberRole|cannot be changed because it is already assigned to a user. "\ - "Please create a new Member Role instead")) - end - - def prevent_delete_after_member_associated - return unless members.present? - - errors.add(:base, s_("MemberRole|cannot be deleted because it is already assigned to a user. "\ - "Please disassociate the member role from all users before deletion.")) - - throw :abort # rubocop:disable Cop/BanCatchThrow - end -end |