diff options
Diffstat (limited to 'app/services/members/destroy_service.rb')
-rw-r--r-- | app/services/members/destroy_service.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/app/services/members/destroy_service.rb b/app/services/members/destroy_service.rb index ce79907e8a8..f18269454e3 100644 --- a/app/services/members/destroy_service.rb +++ b/app/services/members/destroy_service.rb @@ -48,6 +48,10 @@ module Members def authorized?(member, destroy_bot) return can_destroy_bot_member?(member) if destroy_bot + if member.request? + return can_destroy_member_access_request?(member) || can_withdraw_member_access_request?(member) + end + can_destroy_member?(member) end @@ -106,6 +110,14 @@ module Members can?(current_user, destroy_bot_member_permission(member), member) end + def can_destroy_member_access_request?(member) + can?(current_user, :admin_member_access_request, member.source) + end + + def can_withdraw_member_access_request?(member) + can?(current_user, :withdraw_member_access_request, member) + end + def destroying_member_with_owner_access_level?(member) member.owner? end |