summaryrefslogtreecommitdiff
path: root/app/models/ability.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ability.rb')
-rw-r--r--app/models/ability.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb
index c3a212f473d..e55e7709372 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -7,6 +7,7 @@ class Ability
when "Note" then note_abilities(object, subject)
when "Snippet" then snippet_abilities(object, subject)
when "MergeRequest" then merge_request_abilities(object, subject)
+ when "Group" then group_abilities(object, subject)
else []
end
end
@@ -61,6 +62,16 @@ class Ability
rules.flatten
end
+ def group_abilities user, group
+ rules = []
+
+ rules << [
+ :manage_group
+ ] if group.owner == user
+
+ rules.flatten
+ end
+
[:issue, :note, :snippet, :merge_request].each do |name|
define_method "#{name}_abilities" do |user, subject|
if subject.author == user