diff options
Diffstat (limited to 'app/models/customer_relations/issue_contact.rb')
-rw-r--r-- | app/models/customer_relations/issue_contact.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/app/models/customer_relations/issue_contact.rb b/app/models/customer_relations/issue_contact.rb index 78f662b6a58..89dac6bad22 100644 --- a/app/models/customer_relations/issue_contact.rb +++ b/app/models/customer_relations/issue_contact.rb @@ -6,7 +6,7 @@ class CustomerRelations::IssueContact < ApplicationRecord belongs_to :issue, optional: false, inverse_of: :customer_relations_contacts belongs_to :contact, optional: false, inverse_of: :issue_contacts - validate :contact_belongs_to_issue_group + validate :contact_belongs_to_issue_group_or_ancestor def self.find_contact_ids_by_emails(issue_id, emails) raise ArgumentError, "Cannot lookup more than #{MAX_PLUCK} emails" if emails.length > MAX_PLUCK @@ -18,11 +18,11 @@ class CustomerRelations::IssueContact < ApplicationRecord private - def contact_belongs_to_issue_group + def contact_belongs_to_issue_group_or_ancestor return unless contact&.group_id return unless issue&.project&.namespace_id - return if contact.group_id == issue.project.namespace_id + return if issue.project.group&.self_and_ancestor_ids&.include?(contact.group_id) - errors.add(:base, _('The contact does not belong to the same group as the issue')) + errors.add(:base, _('The contact does not belong to the issue group or an ancestor')) end end |