From 7d3efec7d190948423d7e40a3f87e2d62b4ea808 Mon Sep 17 00:00:00 2001 From: Andrey Kumanyaev Date: Sat, 19 Jan 2013 21:32:55 +0400 Subject: [PATCH] Add ability to teams --- app/models/ability.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/models/ability.rb b/app/models/ability.rb index 9d33501fdbc..63d720164a1 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -8,6 +8,7 @@ class Ability when "Snippet" then snippet_abilities(object, subject) when "MergeRequest" then merge_request_abilities(object, subject) when "Group", "Namespace" then group_abilities(object, subject) + when "UserTeam" then user_team_abilities(object, subject) else [] end end @@ -110,6 +111,22 @@ class Ability rules.flatten end + def user_team_abilities user, team + rules = [] + + # Only group owner and administrators can manage group + if team.owner == user || team.admin?(user) || user.admin? + rules << [ :manage_user_team ] + end + + if team.owner == user || user.admin? + rules << [ :admin_user_team ] + end + + rules.flatten + end + + [:issue, :note, :snippet, :merge_request].each do |name| define_method "#{name}_abilities" do |user, subject| if subject.author == user