diff options
Diffstat (limited to 'app/graphql/mutations/issues/set_assignees.rb')
-rw-r--r-- | app/graphql/mutations/issues/set_assignees.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/graphql/mutations/issues/set_assignees.rb b/app/graphql/mutations/issues/set_assignees.rb index a4d1c755b53..8413c89b010 100644 --- a/app/graphql/mutations/issues/set_assignees.rb +++ b/app/graphql/mutations/issues/set_assignees.rb @@ -7,6 +7,19 @@ module Mutations include Assignable + def assign!(issue, users, mode) + permitted, forbidden = users.partition { |u| u.can?(:read_issue, issue) } + + super(issue, permitted, mode) + + forbidden.each do |user| + issue.errors.add( + :assignees, + "Cannot assign #{user.to_reference} to #{issue.to_reference}" + ) + end + end + def update_service_class ::Issues::UpdateService end |