24 lines
579 B
Ruby
24 lines
579 B
Ruby
class ProtectedBranchesMember < ActiveRecord::Base
|
|
include Redmine::SafeAttributes
|
|
|
|
## Attributes
|
|
safe_attributes 'principal_id', 'inherited_by'
|
|
|
|
## Relations
|
|
belongs_to :protected_branch, class_name: 'RepositoryProtectedBranche'
|
|
belongs_to :principal
|
|
|
|
## Callbacks
|
|
after_destroy :remove_dependent_objects
|
|
|
|
private
|
|
|
|
def remove_dependent_objects
|
|
return unless principal.class.name == 'Group'
|
|
|
|
principal.users.each do |user|
|
|
member = self.class.find_by_principal_id_and_inherited_by(user.id, principal.id)
|
|
member&.destroy!
|
|
end
|
|
end
|
|
end
|