Skip to content

Allow ProjectMembers who are owners to have permissions

Sean Arnold requested to merge 327814-allow-project-owner-as-member into master

What does this MR do?

This change fixes a case where the ProjectMember associated with the owner of the project was now able to access any permissions on that project.

For example, this failed: Ability.allowed?(user, :read_project, project_member), where project_member.user == user and project_member.owner == true`.

This was discovered when looking into #327814 (closed). This is surfaced via GraphQL due to GraphQL doing authorize checks on each object returned from the resolver. To make sure this case is covered I've included a GraphQL request spec here.

This change is virtually identical to @alexkalderimis's change for GroupMembers !47455 (merged), except this is for ProjectMembers.

Screenshots (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #327814 (closed)

Edited by Sean Arnold

Merge request reports