diff options
author | Jarka Kadlecová <jarka@gitlab.com> | 2018-08-02 17:16:58 +0300 |
---|---|---|
committer | Jarka Kadlecová <jarka@gitlab.com> | 2018-08-02 17:16:58 +0300 |
commit | 4d4b8f8bbedbfadb49e12df2b123b3528cda4c08 (patch) | |
tree | e4701b090c540811e41c79ab9fd5c2e378c584a3 /app/services/groups | |
parent | e60ec75303475083746e2d09d2a99cc5c6ea0221 (diff) |
Remove group todos when a users looses access
Diffstat (limited to 'app/services/groups')
-rw-r--r-- | app/services/groups/update_service.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/app/services/groups/update_service.rb b/app/services/groups/update_service.rb index 436a6b18cb1..fe47aa2f140 100644 --- a/app/services/groups/update_service.rb +++ b/app/services/groups/update_service.rb @@ -14,7 +14,9 @@ module Groups group.assign_attributes(params) begin - group.save + after_update if group.save + + true rescue Gitlab::UpdatePathError => e group.errors.add(:base, e.message) @@ -24,6 +26,13 @@ module Groups private + def after_update + if group.previous_changes.include?(:visibility_level) && group.private? + # don't enqueue immediately to prevent todos removal in case of a mistake + TodosDestroyer::GroupPrivateWorker.perform_in(1.hour, group.id) + end + end + def reject_parent_id! params.except!(:parent_id) end |