diff options
author | http://jneen.net/ <jneen@jneen.net> | 2016-08-18 19:52:35 +0300 |
---|---|---|
committer | http://jneen.net/ <jneen@jneen.net> | 2016-08-30 21:39:22 +0300 |
commit | 5019185edd7718b262eb5ae94f21763f230f0557 (patch) | |
tree | 87fe3b1d6ed440dc4d0ef09138010e801cdaac5a /app/policies/group_member_policy.rb | |
parent | 29059c2e9c7be418d2a99a136934c6d9cca5fccd (diff) |
port runners, namespaces, group/project_members
Diffstat (limited to 'app/policies/group_member_policy.rb')
-rw-r--r-- | app/policies/group_member_policy.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/app/policies/group_member_policy.rb b/app/policies/group_member_policy.rb new file mode 100644 index 00000000000..62335527654 --- /dev/null +++ b/app/policies/group_member_policy.rb @@ -0,0 +1,19 @@ +class GroupMemberPolicy < BasePolicy + def rules + return unless @user + + target_user = @subject.user + group = @subject.group + + return if group.last_owner?(target_user) + + can_manage = Ability.allowed?(@user, :admin_group_member, group) + + if can_manage + can! :update_group_member + can! :destroy_group_member + elsif @user == target_user + can! :destroy_group_member + end + end +end |