mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-20 10:06:04 +10:00
The goal of suych refactoring is to get rid of observers. Its much easier to test and code when object creation and all other related actions done in one class instead of splited across observers, callbacks etc. Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
32 lines
640 B
Ruby
32 lines
640 B
Ruby
class BaseService
|
|
attr_accessor :project, :current_user, :params
|
|
|
|
def initialize(project, user, params)
|
|
@project, @current_user, @params = project, user, params.dup
|
|
end
|
|
|
|
def abilities
|
|
@abilities ||= begin
|
|
abilities = Six.new
|
|
abilities << Ability
|
|
abilities
|
|
end
|
|
end
|
|
|
|
def can?(object, action, subject)
|
|
abilities.allowed?(object, action, subject)
|
|
end
|
|
|
|
def notification_service
|
|
NotificationService.new
|
|
end
|
|
|
|
def event_service
|
|
EventCreateService.new
|
|
end
|
|
|
|
def log_info message
|
|
Gitlab::AppLogger.info message
|
|
end
|
|
end
|