summaryrefslogtreecommitdiff
path: root/app/services/base_service.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-01-16 19:03:42 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-01-16 19:03:42 +0200
commit1d2bdb4d5880bb1ad39b62c81ff2971aa0cb3798 (patch)
tree8ac3215b2c25cb57b5f2198fd4d85c7bad968c2b /app/services/base_service.rb
parentdba982403b7b894d2096ea61b89a247060eefe57 (diff)
downloadgitlab-ce-1d2bdb4d5880bb1ad39b62c81ff2971aa0cb3798.tar.gz
Move all Context classes into Services
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/services/base_service.rb')
-rw-r--r--app/services/base_service.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/services/base_service.rb b/app/services/base_service.rb
new file mode 100644
index 00000000000..610f0474872
--- /dev/null
+++ b/app/services/base_service.rb
@@ -0,0 +1,19 @@
+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
+end