summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2017-05-17 15:32:28 +0000
committerkushalpandya <kushal@gitlab.com>2017-05-19 13:30:37 +0530
commitf0caffe9934a14b0b9d6fb7bc12bca64e294a4c7 (patch)
treeacab81864f95d57e313e439f8f54d6f0ce6d0650 /app/services
parent2ca0ef8fcf136838bb20dae1a4ece6d9f27f75fc (diff)
downloadgitlab-ce-f0caffe9934a14b0b9d6fb7bc12bca64e294a4c7.tar.gz
Merge branch 'get_rid_of_pluck' into 'master'
Get rid of pluck in app/services/members/authorized_destroy_service.rb Closes #32372 See merge request !11433
Diffstat (limited to 'app/services')
-rw-r--r--app/services/members/authorized_destroy_service.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/app/services/members/authorized_destroy_service.rb b/app/services/members/authorized_destroy_service.rb
index 451614e6fe5..6e987b3b6cd 100644
--- a/app/services/members/authorized_destroy_service.rb
+++ b/app/services/members/authorized_destroy_service.rb
@@ -26,10 +26,14 @@ module Members
def unassign_issues_and_merge_requests(member)
if member.is_a?(GroupMember)
- issue_ids = IssuesFinder.new(user, group_id: member.source_id, assignee_id: member.user_id).
- execute.pluck(:id)
+ issues = Issue.unscoped.select(1).
+ joins(:project).
+ where('issues.id = issue_assignees.issue_id AND projects.namespace_id = ?', member.source_id)
- IssueAssignee.delete_all(issue_id: issue_ids, user_id: member.user_id)
+ # DELETE FROM issue_assignees WHERE user_id = X AND EXISTS (...)
+ IssueAssignee.unscoped.
+ where('user_id = :user_id AND EXISTS (:sub)', user_id: member.user_id, sub: issues).
+ delete_all
MergeRequestsFinder.new(user, group_id: member.source_id, assignee_id: member.user_id).
execute.