summaryrefslogtreecommitdiff
path: root/app/services/quick_actions
diff options
context:
space:
mode:
authorMehdi Lahmam <mehdi@lahmam.com>2017-11-05 23:52:39 +0100
committerMehdi Lahmam <mehdi@lahmam.com>2018-09-06 22:39:19 +0200
commit60bf55456edb3e06ba57dd1da20dffb5d0bfead7 (patch)
tree4e940c7ed408d04000cdf7b00b6c64a5e5159076 /app/services/quick_actions
parent051007498d553d16172120b2ab7a79d0f244545c (diff)
downloadgitlab-ce-60bf55456edb3e06ba57dd1da20dffb5d0bfead7.tar.gz
Add /lock and /unlock quick actions
Closes #39173
Diffstat (limited to 'app/services/quick_actions')
-rw-r--r--app/services/quick_actions/interpret_service.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/services/quick_actions/interpret_service.rb b/app/services/quick_actions/interpret_service.rb
index a4c4c9e4812..be9d1e48435 100644
--- a/app/services/quick_actions/interpret_service.rb
+++ b/app/services/quick_actions/interpret_service.rb
@@ -489,6 +489,30 @@ module QuickActions
"#{comment} #{TABLEFLIP}"
end
+ desc "Lock the discussion"
+ explanation "Locks the discussion"
+ condition do
+ issuable.is_a?(Issuable) &&
+ issuable.persisted? &&
+ !issuable.discussion_locked? &&
+ current_user.can?(:"admin_#{issuable.to_ability_name}", issuable)
+ end
+ command :lock do
+ @updates[:discussion_locked] = true
+ end
+
+ desc "Unlock the discussion"
+ explanation "Unlocks the discussion"
+ condition do
+ issuable.is_a?(Issuable) &&
+ issuable.persisted? &&
+ issuable.discussion_locked? &&
+ current_user.can?(:"admin_#{issuable.to_ability_name}", issuable)
+ end
+ command :unlock do
+ @updates[:discussion_locked] = false
+ end
+
# This is a dummy command, so that it appears in the autocomplete commands
desc 'CC'
params '@user'