From e8e9e0f771c34cf45e9c42f69de4da6b747f07e0 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Fri, 21 Jun 2013 22:44:40 +0300 Subject: [PATCH] Use own abilities for namespace class --- app/models/ability.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/models/ability.rb b/app/models/ability.rb index 7e8d14a..0b77564 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -10,7 +10,8 @@ class Ability when "ProjectSnippet" then project_snippet_abilities(user, subject) when "PersonalSnippet" then personal_snippet_abilities(user, subject) when "MergeRequest" then merge_request_abilities(user, subject) - when "Group", "Namespace" then group_abilities(user, subject) + when "Group" then group_abilities(user, subject) + when "Namespace" then namespace_abilities(user, subject) else [] end.concat(global_abilities(user)) end @@ -144,6 +145,19 @@ class Ability rules.flatten end + def namespace_abilities user, namespace + rules = [] + + # Only namespace owner and administrators can manage it + if namespace.owner == user || user.admin? + rules << [ + :manage_namespace + ] + end + + rules.flatten + end + [:issue, :note, :project_snippet, :personal_snippet, :merge_request].each do |name| define_method "#{name}_abilities" do |user, subject| if subject.author == user -- libgit2 0.21.2