debian-mirror-gitlab/app/policies/group_member_policy.rb

20 lines
415 B
Ruby
Raw Normal View History

2016-09-29 09:46:39 +05:30
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