Skip to content

Allow users to request access to projects and groups

TODO:

  • Factorize the projects & groups members list
  • Factorize request_access and approve controller methods into a concern
  • Factorize the project & group dropdowns
  • Factorize access request routes
  • Factorize mailers

Will be done in separate MRs

  • Implement access request to project & group API: #18583 (closed)
  • Document access request to project & group: #18584 (closed)
  • Allow to configure whether or not access request is enabled for a project / group: #18585 (closed)

Access request to project

  • Design project access request button to spec (defined in #13948 (closed))
  • Request access to a project as a logged in user
  • Withdraw access request to a project as a logged in user
  • Do not treat project member request as actual membership (done partly in Ability)
  • Display access requests on project's members page (+ allow to change level, approve, and deny request)
  • Email requesting user at notification email address when accepted/denied
  • Email all project admins at notification email addresses when new access request
  • Unit specs to cover new functionality: AccessRequestable is missing specs
  • Controller specs to cover new functionality
  • Mailer specs to cover new functionality
  • Features specs to cover new UI and interactions
  • Regression specs still passing

Access request to group

  • Design group access request button to spec (defined in #13948 (closed))
  • Request access to a group as a logged in user
  • Withdraw access request to a group as a logged in user
  • Do not treat group member request as actual membership
  • Display access requests on group's members page (+ allow to change level, approve, and deny request)
  • Email requesting user at notification email address when accepted/denied
  • Email all project admins at notification email addresses when new access request
  • Unit specs to cover new functionality
  • Controller specs to cover new functionality
  • Mailer specs to cover new functionality
  • Features specs to cover new UI and interactions
  • Regression specs still passing

Closes #13948 (closed).

Requesting access to a project

Responsive UI

request-access-to-project

Request access link

1-project-request-access-link

Flash once access is requested

2-project-request-access-flash

Email sent to project admins on new access requests

HTML Email

3-project-request-access-email-html

Plain Email

4-project-request-access-email-plain

Withdrawing access request to a project

Withdraw access request link

5-project-withdraw-request-link

Withdraw access request confirmation dialog box

6-project-withdraw-request-confirm

Flash once access has been withdrawn

6-2-project-withdraw-request-confirm

Access requests management page

7-project-access-requests

Deny access request confirmation dialog box

8-project-access-request-deny-confirm

Email sent to requester on denied access requests

HTML Email

9-project-request-access-denied-email-html

Plain Email

10-project-request-access-denied-email-plain

Email sent to requester on granted access requests

HTML Email

11-project-request-access-granted-email-html

Plain Email

12-project-request-access-granted-email-plain



Requesting access to a group

Responsive UI

request-access-to-group

Request access link

1-group-request-access-link

Flash once access is requested

2-group-request-access-flash

Email sent to project admins on new access requests

HTML Email

3-group-request-access-email-html

Plain Email

4-group-request-access-email-plain

Withdrawing access request to a project

Withdraw access request link

5-group-withdraw-request-link

Withdraw access request confirmation dialog box

6-group-withdraw-request-confirm

Flash once access has been withdrawn

6-2-group-withdraw-request-confirm

Access requests management page

7-group-access-requests

Deny access request confirmation dialog box

8-group-access-request-deny-confirm

Email sent to requester on denied access requests

HTML Email

9-group-request-access-denied-email-html

Plain Email

10-group-request-access-denied-email-plain

Email sent to requester on granted access requests

HTML Email

11-group-request-access-granted-email-html

Plain Email

12-group-request-access-granted-email-plain

Merge request reports