Use own abilities for namespace class

This commit is contained in:
Dmitriy Zaporozhets 2013-06-21 22:44:40 +03:00
parent 0273b79b92
commit e8e9e0f771
1 changed files with 15 additions and 1 deletions

View File

@ -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