summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2015-05-22 06:17:37 -0400
committerStan Hu <stanhu@gmail.com>2015-05-25 06:16:33 -0400
commita7d8a7bd3d4b6f7b388d8976201cbdf3b36ab7aa (patch)
tree9d62c322ee3a1b66faadaffc9417cd7d21feb29b /app/models
parentf042b085f64223ffe7b9d26f003ee2db76af27a6 (diff)
downloadgitlab-ce-a7d8a7bd3d4b6f7b388d8976201cbdf3b36ab7aa.tar.gz
Disable "New Issue" and "New Merge Request" buttons when features are disabled in project settings
Closes #1676
Diffstat (limited to 'app/models')
-rw-r--r--app/models/ability.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 85a15596f8d..04d9dccf916 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -101,6 +101,22 @@ class Ability
rules -= project_archived_rules
end
+ unless project.issues_enabled
+ rules -= named_abilities('issue')
+ end
+
+ unless project.merge_requests_enabled
+ rules -= named_abilities('merge_request')
+ end
+
+ unless project.snippets_enabled
+ rules -= named_abilities('snippet')
+ end
+
+ unless project.wiki_enabled
+ rules -= named_abilities('wiki')
+ end
+
rules
end
end
@@ -272,5 +288,16 @@ class Ability
abilities
end
end
+
+ private
+
+ def named_abilities(name)
+ [
+ :"read_#{name}",
+ :"write_#{name}",
+ :"modify_#{name}",
+ :"admin_#{name}"
+ ]
+ end
end
end