diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-04-20 12:42:41 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-04-20 12:42:41 +0000 |
commit | 33a25e0fc61a1436bfbe9b1e3079c5790a726492 (patch) | |
tree | 2bccf077054080ae7b5ba9c6995f48b993aa5dd3 /app/models | |
parent | f99cc765c7cc20372e2c1c915c40e4a71a1dca15 (diff) | |
parent | 36a8cc3eca62c28ff9001be9378f76b7d59a2f4d (diff) | |
download | gitlab-ce-33a25e0fc61a1436bfbe9b1e3079c5790a726492.tar.gz |
Merge branch 'uassign_on_member_removing' into 'master'
Unassign all Issues and Merge Requests when member leaves a team
Closes #30768 and #24117
See merge request !10755
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/user.rb | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 2d85bf8df26..774d4caa806 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -99,9 +99,6 @@ class User < ActiveRecord::Base has_many :award_emoji, dependent: :destroy has_many :triggers, dependent: :destroy, class_name: 'Ci::Trigger', foreign_key: :owner_id - has_many :assigned_issues, dependent: :nullify, foreign_key: :assignee_id, class_name: "Issue" - has_many :assigned_merge_requests, dependent: :nullify, foreign_key: :assignee_id, class_name: "MergeRequest" - # Issues that a user owns are expected to be moved to the "ghost" user before # the user is destroyed. If the user owns any issues during deletion, this # should be treated as an exceptional condition. @@ -891,20 +888,20 @@ class User < ActiveRecord::Base @global_notification_setting end - def assigned_open_merge_request_count(force: false) - Rails.cache.fetch(['users', id, 'assigned_open_merge_request_count'], force: force) do - assigned_merge_requests.opened.count + def assigned_open_merge_requests_count(force: false) + Rails.cache.fetch(['users', id, 'assigned_open_merge_requests_count'], force: force) do + MergeRequestsFinder.new(self, assignee_id: self.id, state: 'opened').execute.count end end def assigned_open_issues_count(force: false) Rails.cache.fetch(['users', id, 'assigned_open_issues_count'], force: force) do - assigned_issues.opened.count + IssuesFinder.new(self, assignee_id: self.id, state: 'opened').execute.count end end def update_cache_counts - assigned_open_merge_request_count(force: true) + assigned_open_merge_requests_count(force: true) assigned_open_issues_count(force: true) end |