Skip to content

Pending group access request determines which roles can be given in subgroup

Summary

When there is a pending access request for user X in group A, the available roles that can be given to user X in a subgroup B of group A are limited to anything that is equal or higher than the Max role of the pending access request. In other words: If a user requests membership to a group, they then cannot be given a role lower than Developer (the default Max role for group membership requests) for direct membership in any subgroup.

Steps to reproduce

  1. Create group A
  2. Create subgroup B
  3. Request membership to group A with a different account
  4. Add that account as direct member to subgroup B
  5. Observe that you cannot chose anything lower than Developer

Example Project

https://gitlab.com/groups/gl-demo-ultimate-mgrabowski/zd-446829 and https://gitlab.com/groups/gl-demo-ultimate-mgrabowski/zd-446829/subgroup is where I reproduced this

What is the current bug behavior?

Role selection is determined by a pending access request as if it was actual membership

What is the expected correct behavior?

Role selection should not be influenced by pending access request

Relevant logs and/or screenshots

Default after the access request: Nothing below Developer is available:

image

When I change the Max role in the access request to Owner, only that option remains available for the direct membership (the Developer is just there because it still is the current value):

image

Output of checks

This bug happens on GitLab.com

Possible fixes

I guess that validRoles here contains the incorrect data already, but I could not figure out where that is actually coming from/calculated.