summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-06-26 17:18:40 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-06-26 17:18:40 +0200
commit083d4604c49abfec8bf368fe0541d88dcc9bb6ed (patch)
tree6bc4f32563e87a787ffeca79f49521e0ade0ff91 /app/models
parentd63371ad783db055da840be37ddac0cdcb49db2c (diff)
downloadgitlab-ce-083d4604c49abfec8bf368fe0541d88dcc9bb6ed.tar.gz
Change dynamic abilities to new format
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/models')
-rw-r--r--app/models/ability.rb18
1 files changed, 7 insertions, 11 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 6e727ca7b56..b4a9adb5ffc 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -246,20 +246,16 @@ class Ability
[:issue, :note, :project_snippet, :personal_snippet, :merge_request].each do |name|
define_method "#{name}_abilities" do |user, subject|
- if subject.author == user || user.is_admin?
- rules = [
+ if user.is_admin?
+ [
:"read_#{name}",
- :"write_#{name}",
- :"modify_#{name}",
+ :"update_#{name}",
:"admin_#{name}"
]
- rules.push(:change_visibility_level) if subject.is_a?(Snippet)
- rules
- elsif subject.respond_to?(:assignee) && subject.assignee == user
+ elsif subject.author == user || (subject.respond_to?(:assignee) && subject.assignee == user)
[
:"read_#{name}",
- :"write_#{name}",
- :"modify_#{name}",
+ :"update_#{name}",
]
else
if subject.respond_to?(:project) && subject.project
@@ -299,8 +295,8 @@ class Ability
def named_abilities(name)
[
:"read_#{name}",
- :"write_#{name}",
- :"modify_#{name}",
+ :"create_#{name}",
+ :"update_#{name}",
:"admin_#{name}"
]
end