Create empty Commits::UpdateService and wire it up

This commit is contained in:
Peter Leitzen 2018-07-21 10:52:07 +02:00
parent d23fbbc692
commit 2022243a22
5 changed files with 34 additions and 9 deletions

View File

@ -448,6 +448,10 @@ class Commit
true
end
def to_ability_name
model_name.singular
end
def touch
# no-op but needs to be defined since #persisted? is defined
end

View File

@ -0,0 +1,3 @@
class CommitPolicy < BasePolicy
delegate { @subject.project }
end

View File

@ -0,0 +1,9 @@
# frozen_string_literal: true
module Commits
class UpdateService < BaseService
def execute(commit)
# TODO authorize user
end
end
end

View File

@ -4,7 +4,8 @@ module Notes
class QuickActionsService < BaseService
UPDATE_SERVICES = {
'Issue' => Issues::UpdateService,
'MergeRequest' => MergeRequests::UpdateService
'MergeRequest' => MergeRequests::UpdateService,
'Commit' => Commits::UpdateService
}.freeze
def self.noteable_update_service(note)

View File

@ -60,7 +60,8 @@ module QuickActions
"Closes this #{issuable.to_ability_name.humanize(capitalize: false)}."
end
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.open? &&
current_user.can?(:"update_#{issuable.to_ability_name}", issuable)
end
@ -75,7 +76,8 @@ module QuickActions
"Reopens this #{issuable.to_ability_name.humanize(capitalize: false)}."
end
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.closed? &&
current_user.can?(:"update_#{issuable.to_ability_name}", issuable)
end
@ -149,7 +151,8 @@ module QuickActions
issuable.allows_multiple_assignees? ? '@user1 @user2' : ''
end
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.assignees.any? &&
current_user.can?(:"admin_#{issuable.to_ability_name}", project)
end
@ -188,7 +191,8 @@ module QuickActions
"Removes #{issuable.milestone.to_reference(format: :name)} milestone."
end
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.milestone_id? &&
current_user.can?(:"admin_#{issuable.to_ability_name}", project)
end
@ -231,7 +235,8 @@ module QuickActions
end
params '~label1 ~"label 2"'
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.labels.any? &&
current_user.can?(:"admin_#{issuable.to_ability_name}", project)
end
@ -257,7 +262,8 @@ module QuickActions
end
params '~label1 ~"label 2"'
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.labels.any? &&
current_user.can?(:"admin_#{issuable.to_ability_name}", project)
end
@ -317,7 +323,8 @@ module QuickActions
"Subscribes to this #{issuable.to_ability_name.humanize(capitalize: false)}."
end
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
!issuable.subscribed?(current_user, project)
end
command :subscribe do
@ -329,7 +336,8 @@ module QuickActions
"Unsubscribes from this #{issuable.to_ability_name.humanize(capitalize: false)}."
end
condition do
issuable.persisted? &&
issuable.is_a?(Issuable) &&
issuable.persisted? &&
issuable.subscribed?(current_user, project)
end
command :unsubscribe do