Commit 71cf8df0 authored by Robert Speicher's avatar Robert Speicher

Merge branch 'move-service-prepends' into 'master'

Move EE prepend/include to the end of services

See merge request gitlab-org/gitlab-ee!8200
parents 86201565 9f4735d3
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module ApplicationSettings module ApplicationSettings
class UpdateService < ApplicationSettings::BaseService class UpdateService < ApplicationSettings::BaseService
prepend EE::ApplicationSettings::UpdateService
attr_reader :params, :application_setting attr_reader :params, :application_setting
def execute def execute
...@@ -46,3 +44,5 @@ module ApplicationSettings ...@@ -46,3 +44,5 @@ module ApplicationSettings
end end
end end
end end
ApplicationSettings::UpdateService.prepend(EE::ApplicationSettings::UpdateService)
# frozen_string_literal: true # frozen_string_literal: true
class AuditEventService class AuditEventService
prepend EE::AuditEventService
def initialize(author, entity, details = {}) def initialize(author, entity, details = {})
@author, @entity, @details = author, entity, details @author, @entity, @details = author, entity, details
end end
...@@ -45,3 +43,5 @@ class AuditEventService ...@@ -45,3 +43,5 @@ class AuditEventService
SecurityEvent.create(base_payload.merge(details: @details)) SecurityEvent.create(base_payload.merge(details: @details))
end end
end end
AuditEventService.prepend(EE::AuditEventService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Boards module Boards
class BaseService < ::BaseService class BaseService < ::BaseService
prepend EE::Boards::BaseService
# Parent can either a group or a project # Parent can either a group or a project
attr_accessor :parent, :current_user, :params attr_accessor :parent, :current_user, :params
...@@ -12,3 +10,5 @@ module Boards ...@@ -12,3 +10,5 @@ module Boards
end end
end end
end end
Boards::BaseService.prepend(EE::Boards::BaseService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Boards module Boards
class CreateService < Boards::BaseService class CreateService < Boards::BaseService
prepend EE::Boards::CreateService
def execute def execute
create_board! if can_create_board? create_board! if can_create_board?
end end
...@@ -26,3 +24,5 @@ module Boards ...@@ -26,3 +24,5 @@ module Boards
end end
end end
end end
Boards::CreateService.prepend(EE::Boards::CreateService)
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
module Boards module Boards
module Issues module Issues
class ListService < Boards::BaseService class ListService < Boards::BaseService
prepend EE::Boards::Issues::ListService
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
def execute def execute
...@@ -111,3 +110,5 @@ module Boards ...@@ -111,3 +110,5 @@ module Boards
end end
end end
end end
Boards::Issues::ListService.prepend(EE::Boards::Issues::ListService)
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
module Boards module Boards
module Issues module Issues
class MoveService < Boards::BaseService class MoveService < Boards::BaseService
prepend EE::Boards::Issues::MoveService
def execute(issue) def execute(issue)
return false unless can?(current_user, :update_issue, issue) return false unless can?(current_user, :update_issue, issue)
return false if issue_params(issue).empty? return false if issue_params(issue).empty?
...@@ -90,3 +88,5 @@ module Boards ...@@ -90,3 +88,5 @@ module Boards
end end
end end
end end
Boards::Issues::MoveService.prepend(EE::Boards::Issues::MoveService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Boards module Boards
class ListService < Boards::BaseService class ListService < Boards::BaseService
prepend EE::Boards::ListService
def execute def execute
create_board! if parent.boards.empty? create_board! if parent.boards.empty?
boards boards
...@@ -20,3 +18,5 @@ module Boards ...@@ -20,3 +18,5 @@ module Boards
end end
end end
end end
Boards::ListService.prepend(EE::Boards::ListService)
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
module Boards module Boards
module Lists module Lists
class CreateService < Boards::BaseService class CreateService < Boards::BaseService
prepend EE::Boards::Lists::CreateService
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
def execute(board) def execute(board)
...@@ -50,3 +48,5 @@ module Boards ...@@ -50,3 +48,5 @@ module Boards
end end
end end
end end
Boards::Lists::CreateService.prepend(EE::Boards::Lists::CreateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Ci module Ci
class ProcessBuildService < BaseService class ProcessBuildService < BaseService
prepend EE::Ci::ProcessBuildService
def execute(build, current_status) def execute(build, current_status)
if valid_statuses_for_when(build.when).include?(current_status) if valid_statuses_for_when(build.when).include?(current_status)
if build.schedulable? if build.schedulable?
...@@ -45,3 +43,5 @@ module Ci ...@@ -45,3 +43,5 @@ module Ci
end end
end end
end end
Ci::ProcessBuildService.prepend(EE::Ci::ProcessBuildService)
...@@ -4,8 +4,6 @@ module Ci ...@@ -4,8 +4,6 @@ module Ci
# This class responsible for assigning # This class responsible for assigning
# proper pending build to runner on runner API request # proper pending build to runner on runner API request
class RegisterJobService class RegisterJobService
prepend EE::Ci::RegisterJobService
attr_reader :runner attr_reader :runner
JOB_QUEUE_DURATION_SECONDS_BUCKETS = [1, 3, 10, 30].freeze JOB_QUEUE_DURATION_SECONDS_BUCKETS = [1, 3, 10, 30].freeze
...@@ -179,3 +177,5 @@ module Ci ...@@ -179,3 +177,5 @@ module Ci
end end
end end
end end
Ci::RegisterJobService.prepend(EE::Ci::RegisterJobService)
...@@ -5,8 +5,6 @@ module Clusters ...@@ -5,8 +5,6 @@ module Clusters
class BaseHelmService class BaseHelmService
attr_accessor :app attr_accessor :app
prepend EE::Clusters::Applications::BaseHelmService
def initialize(app) def initialize(app)
@app = app @app = app
end end
...@@ -31,3 +29,5 @@ module Clusters ...@@ -31,3 +29,5 @@ module Clusters
end end
end end
end end
Clusters::Applications::BaseHelmService.prepend(EE::Clusters::Applications::BaseHelmService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Clusters module Clusters
class CreateService class CreateService
prepend EE::Clusters::CreateService
attr_reader :current_user, :params attr_reader :current_user, :params
def initialize(user = nil, params = {}) def initialize(user = nil, params = {})
...@@ -47,3 +45,5 @@ module Clusters ...@@ -47,3 +45,5 @@ module Clusters
end end
end end
end end
Clusters::CreateService.prepend(EE::Clusters::CreateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Commits module Commits
class CreateService < ::BaseService class CreateService < ::BaseService
prepend EE::Commits::CreateService
ValidationError = Class.new(StandardError) ValidationError = Class.new(StandardError)
ChangeError = Class.new(StandardError) ChangeError = Class.new(StandardError)
...@@ -76,3 +74,5 @@ module Commits ...@@ -76,3 +74,5 @@ module Commits
end end
end end
end end
Commits::CreateService.prepend(EE::Commits::CreateService)
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
module Issuable module Issuable
class CommonSystemNotesService < ::BaseService class CommonSystemNotesService < ::BaseService
prepend EE::Issuable::CommonSystemNotesService
attr_reader :issuable attr_reader :issuable
def execute(issuable, old_labels) def execute(issuable, old_labels)
...@@ -101,3 +100,5 @@ module Issuable ...@@ -101,3 +100,5 @@ module Issuable
end end
end end
end end
Issuable::CommonSystemNotesService.prepend(EE::Issuable::CommonSystemNotesService)
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
module Issues module Issues
class UpdateService < Issues::BaseService class UpdateService < Issues::BaseService
prepend EE::Issues::UpdateService
include SpamCheckService include SpamCheckService
def execute(issue) def execute(issue)
...@@ -126,3 +125,5 @@ module Issues ...@@ -126,3 +125,5 @@ module Issues
end end
end end
end end
Issues::UpdateService.prepend(EE::Issues::UpdateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Keys module Keys
class CreateService < ::Keys::BaseService class CreateService < ::Keys::BaseService
prepend EE::Keys::CreateService
def execute def execute
key = user.keys.create(params) key = user.keys.create(params)
notification_service.new_key(key) if key.persisted? notification_service.new_key(key) if key.persisted?
...@@ -11,3 +9,5 @@ module Keys ...@@ -11,3 +9,5 @@ module Keys
end end
end end
end end
Keys::CreateService.prepend(EE::Keys::CreateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Keys module Keys
class DestroyService < ::Keys::BaseService class DestroyService < ::Keys::BaseService
prepend EE::Keys::DestroyService
def execute(key) def execute(key)
key.destroy if destroy_possible?(key) key.destroy if destroy_possible?(key)
end end
...@@ -14,3 +12,5 @@ module Keys ...@@ -14,3 +12,5 @@ module Keys
end end
end end
end end
Keys::DestroyService.prepend(EE::Keys::DestroyService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Lfs module Lfs
class LockFileService < BaseService class LockFileService < BaseService
prepend EE::Lfs::LockFileService
def execute def execute
unless can?(current_user, :push_code, project) unless can?(current_user, :push_code, project)
raise Gitlab::GitAccess::UnauthorizedError, 'You have no permissions' raise Gitlab::GitAccess::UnauthorizedError, 'You have no permissions'
...@@ -43,3 +41,5 @@ module Lfs ...@@ -43,3 +41,5 @@ module Lfs
end end
end end
end end
Lfs::LockFileService.prepend(EE::Lfs::LockFileService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Lfs module Lfs
class UnlockFileService < BaseService class UnlockFileService < BaseService
prepend EE::Lfs::UnlockFileService
def execute def execute
unless can?(current_user, :push_code, project) unless can?(current_user, :push_code, project)
raise Gitlab::GitAccess::UnauthorizedError, _('You have no permissions') raise Gitlab::GitAccess::UnauthorizedError, _('You have no permissions')
...@@ -47,3 +45,5 @@ module Lfs ...@@ -47,3 +45,5 @@ module Lfs
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord
end end
end end
Lfs::UnlockFileService.prepend(EE::Lfs::UnlockFileService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Members module Members
class ApproveAccessRequestService < Members::BaseService class ApproveAccessRequestService < Members::BaseService
prepend EE::Members::ApproveAccessRequestService
def execute(access_requester, skip_authorization: false, skip_log_audit_event: false) def execute(access_requester, skip_authorization: false, skip_log_audit_event: false)
raise Gitlab::Access::AccessDeniedError unless skip_authorization || can_update_access_requester?(access_requester) raise Gitlab::Access::AccessDeniedError unless skip_authorization || can_update_access_requester?(access_requester)
...@@ -22,3 +20,5 @@ module Members ...@@ -22,3 +20,5 @@ module Members
end end
end end
end end
Members::ApproveAccessRequestService.prepend(EE::Members::ApproveAccessRequestService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Members module Members
class CreateService < Members::BaseService class CreateService < Members::BaseService
prepend EE::Members::CreateService
DEFAULT_LIMIT = 100 DEFAULT_LIMIT = 100
def execute(source) def execute(source)
...@@ -35,3 +33,5 @@ module Members ...@@ -35,3 +33,5 @@ module Members
end end
end end
end end
Members::CreateService.prepend(EE::Members::CreateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Members module Members
class DestroyService < Members::BaseService class DestroyService < Members::BaseService
prepend EE::Members::DestroyService
def execute(member, skip_authorization: false) def execute(member, skip_authorization: false)
raise Gitlab::Access::AccessDeniedError unless skip_authorization || can_destroy_member?(member) raise Gitlab::Access::AccessDeniedError unless skip_authorization || can_destroy_member?(member)
...@@ -48,3 +46,5 @@ module Members ...@@ -48,3 +46,5 @@ module Members
end end
end end
end end
Members::DestroyService.prepend(EE::Members::DestroyService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Members module Members
class UpdateService < Members::BaseService class UpdateService < Members::BaseService
prepend EE::Members::UpdateService
# returns the updated member # returns the updated member
def execute(member, permission: :update) def execute(member, permission: :update)
raise Gitlab::Access::AccessDeniedError unless can?(current_user, action_member_permission(permission, member), member) raise Gitlab::Access::AccessDeniedError unless can?(current_user, action_member_permission(permission, member), member)
...@@ -18,3 +16,5 @@ module Members ...@@ -18,3 +16,5 @@ module Members
end end
end end
end end
Members::UpdateService.prepend(EE::Members::UpdateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module MergeRequests module MergeRequests
class BaseService < ::IssuableBaseService class BaseService < ::IssuableBaseService
prepend EE::MergeRequests::BaseService
def create_note(merge_request, state = merge_request.state) def create_note(merge_request, state = merge_request.state)
SystemNoteService.change_status(merge_request, merge_request.target_project, current_user, state, nil) SystemNoteService.change_status(merge_request, merge_request.target_project, current_user, state, nil)
end end
...@@ -87,3 +85,5 @@ module MergeRequests ...@@ -87,3 +85,5 @@ module MergeRequests
end end
end end
end end
MergeRequests::BaseService.prepend(EE::MergeRequests::BaseService)
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
module MergeRequests module MergeRequests
class BuildService < MergeRequests::BaseService class BuildService < MergeRequests::BaseService
prepend EE::MergeRequests::BuildService
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
def execute def execute
...@@ -208,3 +207,5 @@ module MergeRequests ...@@ -208,3 +207,5 @@ module MergeRequests
end end
end end
end end
MergeRequests::BuildService.prepend(EE::MergeRequests::BuildService)
...@@ -8,8 +8,6 @@ module MergeRequests ...@@ -8,8 +8,6 @@ module MergeRequests
# Executed when you do merge via GitLab UI # Executed when you do merge via GitLab UI
# #
class MergeService < MergeRequests::BaseService class MergeService < MergeRequests::BaseService
prepend EE::MergeRequests::MergeService
MergeError = Class.new(StandardError) MergeError = Class.new(StandardError)
attr_reader :merge_request, :source attr_reader :merge_request, :source
...@@ -140,3 +138,5 @@ module MergeRequests ...@@ -140,3 +138,5 @@ module MergeRequests
end end
end end
end end
MergeRequests::MergeService.prepend(EE::MergeRequests::MergeService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module MergeRequests module MergeRequests
class RefreshService < MergeRequests::BaseService class RefreshService < MergeRequests::BaseService
prepend EE::MergeRequests::RefreshService
def execute(oldrev, newrev, ref) def execute(oldrev, newrev, ref)
push = Gitlab::Git::Push.new(@project, oldrev, newrev, ref) push = Gitlab::Git::Push.new(@project, oldrev, newrev, ref)
return true unless push.branch_push? return true unless push.branch_push?
...@@ -225,3 +223,5 @@ module MergeRequests ...@@ -225,3 +223,5 @@ module MergeRequests
end end
end end
end end
MergeRequests::RefreshService.prepend(EE::MergeRequests::RefreshService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Milestones module Milestones
class PromoteService < Milestones::BaseService class PromoteService < Milestones::BaseService
prepend EE::Milestones::PromoteService
PromoteMilestoneError = Class.new(StandardError) PromoteMilestoneError = Class.new(StandardError)
def execute(milestone) def execute(milestone)
...@@ -95,3 +93,5 @@ module Milestones ...@@ -95,3 +93,5 @@ module Milestones
end end
end end
end end
Milestones::PromoteService.prepend(EE::Milestones::PromoteService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Milestones module Milestones
class UpdateService < Milestones::BaseService class UpdateService < Milestones::BaseService
prepend EE::Milestones::UpdateService
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
def execute(milestone) def execute(milestone)
state = params[:state_event] state = params[:state_event]
...@@ -24,3 +22,5 @@ module Milestones ...@@ -24,3 +22,5 @@ module Milestones
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord
end end
end end
Milestones::UpdateService.prepend(EE::Milestones::UpdateService)
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
# NotificationService.new.async.new_issue(issue, current_user) # NotificationService.new.async.new_issue(issue, current_user)
# #
class NotificationService class NotificationService
prepend EE::NotificationService
class Async class Async
attr_reader :parent attr_reader :parent
delegate :respond_to_missing, to: :parent delegate :respond_to_missing, to: :parent
...@@ -589,3 +587,5 @@ class NotificationService ...@@ -589,3 +587,5 @@ class NotificationService
member.source.respond_to?(:group) && member.source.group member.source.respond_to?(:group) && member.source.group
end end
end end
NotificationService.prepend(EE::NotificationService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module ProtectedBranches module ProtectedBranches
class AccessLevelParams class AccessLevelParams
prepend EE::ProtectedBranches::AccessLevelParams
attr_reader :type, :params attr_reader :type, :params
def initialize(type, params) def initialize(type, params)
...@@ -35,3 +33,5 @@ module ProtectedBranches ...@@ -35,3 +33,5 @@ module ProtectedBranches
end end
end end
end end
ProtectedBranches::AccessLevelParams.prepend(EE::ProtectedBranches::AccessLevelParams)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module ProtectedBranches module ProtectedBranches
class ApiService < BaseService class ApiService < BaseService
prepend EE::ProtectedBranches::ApiService
def create def create
@push_params = AccessLevelParams.new(:push, params) @push_params = AccessLevelParams.new(:push, params)
@merge_params = AccessLevelParams.new(:merge, params) @merge_params = AccessLevelParams.new(:merge, params)
...@@ -28,3 +26,5 @@ module ProtectedBranches ...@@ -28,3 +26,5 @@ module ProtectedBranches
end end
end end
end end
ProtectedBranches::ApiService.prepend(EE::ProtectedBranches::ApiService)
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
module QuickActions module QuickActions
class InterpretService < BaseService class InterpretService < BaseService
include Gitlab::QuickActions::Dsl include Gitlab::QuickActions::Dsl
prepend EE::QuickActions::InterpretService
attr_reader :issuable attr_reader :issuable
SHRUG = '¯\\_(ツ)_/¯'.freeze SHRUG = '¯\\_(ツ)_/¯'.freeze
...@@ -701,3 +699,5 @@ module QuickActions ...@@ -701,3 +699,5 @@ module QuickActions
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord
end end
end end
QuickActions::InterpretService.prepend(EE::QuickActions::InterpretService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module ResourceEvents module ResourceEvents
class ChangeLabelsService class ChangeLabelsService
prepend EE::ResourceEvents::ChangeLabelsService
attr_reader :resource, :user attr_reader :resource, :user
def initialize(resource, user) def initialize(resource, user)
...@@ -42,3 +40,5 @@ module ResourceEvents ...@@ -42,3 +40,5 @@ module ResourceEvents
end end
end end
end end
ResourceEvents::ChangeLabelsService.prepend(EE::ResourceEvents::ChangeLabelsService)
# frozen_string_literal: true # frozen_string_literal: true
class SystemHooksService class SystemHooksService
prepend EE::SystemHooksService
def execute_hooks_for(model, event) def execute_hooks_for(model, event)
data = build_event_data(model, event) data = build_event_data(model, event)
...@@ -151,3 +149,5 @@ class SystemHooksService ...@@ -151,3 +149,5 @@ class SystemHooksService
} }
end end
end end
SystemHooksService.prepend(EE::SystemHooksService)
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
# Used for creating system notes (e.g., when a user references a merge request # Used for creating system notes (e.g., when a user references a merge request
# from an issue, an issue's assignee changes, an issue is closed, etc.) # from an issue, an issue's assignee changes, an issue is closed, etc.)
module SystemNoteService module SystemNoteService
prepend EE::SystemNoteService
extend self extend self
# Called when commits are added to a Merge Request # Called when commits are added to a Merge Request
...@@ -678,3 +677,5 @@ module SystemNoteService ...@@ -678,3 +677,5 @@ module SystemNoteService
ActionController::Base.helpers.content_tag(*args) ActionController::Base.helpers.content_tag(*args)
end end
end end
SystemNoteService.prepend(EE::SystemNoteService)
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
# TodoService.new.new_issue(issue, current_user) # TodoService.new.new_issue(issue, current_user)
# #
class TodoService class TodoService
prepend EE::TodoService
# When create an issue we should: # When create an issue we should:
# #
# * create a todo for assignee if issue is assigned # * create a todo for assignee if issue is assigned
...@@ -345,3 +343,5 @@ class TodoService ...@@ -345,3 +343,5 @@ class TodoService
PendingTodosFinder.new(user, criteria).execute PendingTodosFinder.new(user, criteria).execute
end end
end end
TodoService.prepend(EE::TodoService)
# frozen_string_literal: true # frozen_string_literal: true
class UserProjectAccessChangedService class UserProjectAccessChangedService
prepend EE::UserProjectAccessChangedService
def initialize(user_ids) def initialize(user_ids)
@user_ids = Array.wrap(user_ids) @user_ids = Array.wrap(user_ids)
end end
...@@ -17,3 +15,5 @@ class UserProjectAccessChangedService ...@@ -17,3 +15,5 @@ class UserProjectAccessChangedService
end end
end end
end end
UserProjectAccessChangedService.prepend(EE::UserProjectAccessChangedService)
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
# when the user is destroyed. # when the user is destroyed.
module Users module Users
class MigrateToGhostUserService class MigrateToGhostUserService
prepend EE::Users::MigrateToGhostUserService
extend ActiveSupport::Concern extend ActiveSupport::Concern
attr_reader :ghost_user, :user attr_reader :ghost_user, :user
...@@ -82,3 +81,5 @@ module Users ...@@ -82,3 +81,5 @@ module Users
end end
end end
end end
Users::MigrateToGhostUserService.prepend(EE::Users::MigrateToGhostUserService)
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
module Users module Users
class UpdateService < BaseService class UpdateService < BaseService
include NewUserNotifier include NewUserNotifier
prepend EE::Users::UpdateService
def initialize(current_user, params = {}) def initialize(current_user, params = {})
@current_user = current_user @current_user = current_user
@user = params.delete(:user) @user = params.delete(:user)
...@@ -58,3 +56,5 @@ module Users ...@@ -58,3 +56,5 @@ module Users
end end
end end
end end
Users::UpdateService.prepend(EE::Users::UpdateService)
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module WikiPages module WikiPages
class BaseService < ::BaseService class BaseService < ::BaseService
prepend EE::WikiPages::BaseService
private private
def execute_hooks(page, action = 'create') def execute_hooks(page, action = 'create')
...@@ -13,3 +11,5 @@ module WikiPages ...@@ -13,3 +11,5 @@ module WikiPages
end end
end end
end end
WikiPages::BaseService.prepend(EE::WikiPages::BaseService)
module EE module EE
module QuickActions module QuickActions
module InterpretService module InterpretService
include ::Gitlab::QuickActions::Dsl extend ActiveSupport::Concern
desc 'Change assignee(s)' # We use "prepended" here instead of including Gitlab::QuickActions::Dsl,
explanation do # as doing so would clear any existing command definitions.
'Change assignee(s)' prepended do
end desc 'Change assignee(s)'
params '@user1 @user2' explanation do
condition do 'Change assignee(s)'
issuable.is_a?(::Issuable) && end
issuable.allows_multiple_assignees? && params '@user1 @user2'
issuable.persisted? && condition do
current_user.can?(:"admin_#{issuable.to_ability_name}", project) issuable.is_a?(::Issuable) &&
end issuable.allows_multiple_assignees? &&
command :reassign do |reassign_param| issuable.persisted? &&
@updates[:assignee_ids] = extract_users(reassign_param).map(&:id) current_user.can?(:"admin_#{issuable.to_ability_name}", project)
end end
command :reassign do |reassign_param|
@updates[:assignee_ids] = extract_users(reassign_param).map(&:id)
end
desc 'Set weight' desc 'Set weight'
explanation do |weight| explanation do |weight|
"Sets weight to #{weight}." if weight "Sets weight to #{weight}." if weight
end end
params "0, 1, 2, …" params "0, 1, 2, …"
condition do condition do
issuable.is_a?(::Issuable) && issuable.is_a?(::Issuable) &&
issuable.supports_weight? && issuable.supports_weight? &&
current_user.can?(:"admin_#{issuable.to_ability_name}", issuable) current_user.can?(:"admin_#{issuable.to_ability_name}", issuable)
end end
parse_params do |weight| parse_params do |weight|
weight.to_i if weight.to_i > 0 weight.to_i if weight.to_i > 0
end end
command :weight do |weight| command :weight do |weight|
@updates[:weight] = weight if weight @updates[:weight] = weight if weight
end end
desc 'Clear weight' desc 'Clear weight'
explanation 'Clears weight.' explanation 'Clears weight.'
condition do condition do
issuable.is_a?(::Issuable) && issuable.is_a?(::Issuable) &&
issuable.persisted? && issuable.persisted? &&
issuable.supports_weight? && issuable.supports_weight? &&
issuable.weight? && issuable.weight? &&
current_user.can?(:"admin_#{issuable.to_ability_name}", issuable) current_user.can?(:"admin_#{issuable.to_ability_name}", issuable)
end end
command :clear_weight do command :clear_weight do
@updates[:weight] = nil @updates[:weight] = nil
end end
desc 'Add to epic' desc 'Add to epic'
explanation 'Adds an issue to an epic.' explanation 'Adds an issue to an epic.'
condition do condition do
issuable.is_a?(::Issue) && issuable.is_a?(::Issue) &&
issuable.project.group&.feature_available?(:epics) && issuable.project.group&.feature_available?(:epics) &&
current_user.can?(:"admin_#{issuable.to_ability_name}", issuable) current_user.can?(:"admin_#{issuable.to_ability_name}", issuable)
end end
params '<&epic | group&epic | Epic URL>' params '<&epic | group&epic | Epic URL>'
command :epic do |epic_param| command :epic do |epic_param|
@updates[:epic] = extract_epic(epic_param) @updates[:epic] = extract_epic(epic_param)
end end
desc 'Remove from epic' desc 'Remove from epic'
explanation 'Removes an issue from an epic.' explanation 'Removes an issue from an epic.'
condition do condition do
issuable.is_a?(::Issue) && issuable.is_a?(::Issue) &&
issuable.persisted? && issuable.persisted? &&
issuable.project.group&.feature_available?(:epics) && issuable.project.group&.feature_available?(:epics) &&
current_user.can?(:"admin_#{issuable.to_ability_name}", issuable) current_user.can?(:"admin_#{issuable.to_ability_name}", issuable)
end end
command :remove_epic do command :remove_epic do
@updates[:epic] = nil @updates[:epic] = nil
end end
desc 'Approve a merge request' desc 'Approve a merge request'
explanation 'Approve the current merge request' explanation 'Approve the current merge request'
condition do condition do
issuable.is_a?(MergeRequest) && issuable.persisted? && issuable.can_approve?(current_user) issuable.is_a?(MergeRequest) && issuable.persisted? && issuable.can_approve?(current_user)
end end
command :approve do command :approve do
if issuable.can_approve?(current_user) if issuable.can_approve?(current_user)
::MergeRequests::ApprovalService.new(issuable.project, current_user).execute(issuable) ::MergeRequests::ApprovalService.new(issuable.project, current_user).execute(issuable)
end
end end
end end
......
...@@ -4,7 +4,14 @@ ...@@ -4,7 +4,14 @@
# from an issue, an issue's assignee changes, an issue is closed, etc. # from an issue, an issue's assignee changes, an issue is closed, etc.
module EE module EE
module SystemNoteService module SystemNoteService
extend self extend ActiveSupport::Concern
prepended do
# ::SystemNoteService wants the methods to be available as both class and
# instance methods. This removes the need for having to both `include` and
# `extend` this module everywhere it is used.
extend(EE::SystemNoteService)
end
# #
# noteable - Noteable object # noteable - Noteable object
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment