diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-13 18:11:24 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-13 18:11:24 +0300 |
commit | 536d72ba7ea2226b56ddc55a3eb35c96a9ba3b6d (patch) | |
tree | 39ce05fe8387849f28da473f4a001159371bcf15 /app/models/concerns/subscribable.rb | |
parent | 7ad147d6b88837b12b02d1b1711061dcdcd6c0e3 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models/concerns/subscribable.rb')
-rw-r--r-- | app/models/concerns/subscribable.rb | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/app/models/concerns/subscribable.rb b/app/models/concerns/subscribable.rb index 10bfea0965e..5a10ea7a248 100644 --- a/app/models/concerns/subscribable.rb +++ b/app/models/concerns/subscribable.rb @@ -17,16 +17,6 @@ module Subscribable def subscribed?(user, project = nil) return false unless user - if (subscription = subscriptions.find_by(user: user, project: project)) - subscription.subscribed - else - subscribed_without_subscriptions?(user, project) - end - end - - def lazy_subscribed?(user, project = nil) - return false unless user - if (subscription = lazy_subscription(user, project)&.itself) subscription.subscribed else @@ -75,8 +65,10 @@ module Subscribable def toggle_subscription(user, project = nil) unsubscribe_from_other_levels(user, project) + new_value = !subscribed?(user, project) + find_or_initialize_subscription(user, project) - .update(subscribed: !subscribed?(user, project)) + .update(subscribed: new_value) end def subscribe(user, project = nil) @@ -117,6 +109,8 @@ module Subscribable end def find_or_initialize_subscription(user, project) + BatchLoader::Executor.clear_current + subscriptions .find_or_initialize_by(user_id: user.id, project_id: project.try(:id)) end |