summaryrefslogtreecommitdiff
path: root/app/graphql/mutations/issues/set_assignees.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/mutations/issues/set_assignees.rb')
-rw-r--r--app/graphql/mutations/issues/set_assignees.rb13
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