[Backend] Make available a list of User Permissions per Group and Project

Problem to solve

(From original issue)

Its cumbersome to culminate a list of permissions for each user, across all groups and projects on their instance. Currently, there is no summary available to see this information and as a work around customers are using a script to generate the data view they need.

Please refer to the Technical implementation section for the complete details on how we plan to implement this feature.

This particular issue pertains the backend changes required for this feature.

Proposal

The changes will include 2 apis, a background job and a mailer.

User_permission_csv_export

Legend:

Blue - API changes

Yellow - Background job

Green - mailer changes

Further details

Requires database changes mentioned in this issue, to store the file location.

Example CSV template:

Username Email Type Path Access Level Inherited memberships
root admin@example.com Group gitlab-org Owner gitlab-org/subgroup-one, gitlab-org/subgroup-one/gitlab-test

Please note Inherited memberships will include only direct memberships (sub-groups and projects). All decandants to be included in a future iteration.

Links / references

Edited by Aishwarya Subramanian