Commit 7d3efec7d190948423d7e40a3f87e2d62b4ea808
Committed by
Dmitriy Zaporozhets
1 parent
695becc4
Exists in
master
and in
4 other branches
Add ability to teams
Showing
1 changed file
with
17 additions
and
0 deletions
Show diff stats
app/models/ability.rb
| ... | ... | @@ -8,6 +8,7 @@ class Ability |
| 8 | 8 | when "Snippet" then snippet_abilities(object, subject) |
| 9 | 9 | when "MergeRequest" then merge_request_abilities(object, subject) |
| 10 | 10 | when "Group", "Namespace" then group_abilities(object, subject) |
| 11 | + when "UserTeam" then user_team_abilities(object, subject) | |
| 11 | 12 | else [] |
| 12 | 13 | end |
| 13 | 14 | end |
| ... | ... | @@ -110,6 +111,22 @@ class Ability |
| 110 | 111 | rules.flatten |
| 111 | 112 | end |
| 112 | 113 | |
| 114 | + def user_team_abilities user, team | |
| 115 | + rules = [] | |
| 116 | + | |
| 117 | + # Only group owner and administrators can manage group | |
| 118 | + if team.owner == user || team.admin?(user) || user.admin? | |
| 119 | + rules << [ :manage_user_team ] | |
| 120 | + end | |
| 121 | + | |
| 122 | + if team.owner == user || user.admin? | |
| 123 | + rules << [ :admin_user_team ] | |
| 124 | + end | |
| 125 | + | |
| 126 | + rules.flatten | |
| 127 | + end | |
| 128 | + | |
| 129 | + | |
| 113 | 130 | [:issue, :note, :snippet, :merge_request].each do |name| |
| 114 | 131 | define_method "#{name}_abilities" do |user, subject| |
| 115 | 132 | if subject.author == user | ... | ... |