Commit a6a51d60 authored by Marcel Amirault's avatar Marcel Amirault

Merge branch 'project-members-ctrt' into 'master'

Edited Project members for topic types

See merge request gitlab-org/gitlab!62978
parents edaad05e 171e813b
...@@ -17,12 +17,13 @@ to perform actions. ...@@ -17,12 +17,13 @@ to perform actions.
Prerequisite: Prerequisite:
- You must have the [Maintainer role or Owner role](../../permissions.md). - You must have the [Maintainer or Owner role](../../permissions.md).
To add a user to a project: To add a user to a project:
1. Go to your project and select **Members**. 1. Go to your project and select **Members**.
1. On the **Invite member** tab, under **GitLab member of Email address**, type the username or email address. 1. On the **Invite member** tab, under **GitLab member or Email address**, type the username or email address.
In GitLab 13.11 and later, you can [replace this form with a modal window](#add-a-member-modal-window).
1. Select a [role](../../permissions.md). 1. Select a [role](../../permissions.md).
1. Optional. Choose an expiration date. On that date, the user can no longer access the project. 1. Optional. Choose an expiration date. On that date, the user can no longer access the project.
1. Select **Invite**. 1. Select **Invite**.
...@@ -30,15 +31,24 @@ To add a user to a project: ...@@ -30,15 +31,24 @@ To add a user to a project:
If the user has a GitLab account, they are added to the members list. If the user has a GitLab account, they are added to the members list.
If you used an email address, the user receives an email. If you used an email address, the user receives an email.
If the invitation is not accepted, GitLab sends reminder emails two,
five, and ten days later. Unaccepted invites are automatically
deleted after 90 days.
If the user does not have a GitLab account, they are prompted to create an account
using the email address the invitation was sent to.
## Add groups to a project ## Add groups to a project
When you assign a group to a project, each user in the group gets access to the project, When you add a group to a project, each user in the group gets access to the project.
based on the role they're assigned in the group. However, the user's access is also Each user's access is based on:
limited by the maximum role you choose when you invite the group.
- The role they're assigned in the group.
- The maximum role you choose when you invite the group.
Prerequisite: Prerequisite:
- You must have the [Maintainer role or Owner role](../../permissions.md). - You must have the [Maintainer or Owner role](../../permissions.md).
To add groups to a project: To add groups to a project:
...@@ -61,7 +71,7 @@ retain the same permissions as the project you import them from. ...@@ -61,7 +71,7 @@ retain the same permissions as the project you import them from.
Prerequisite: Prerequisite:
- You must have the [Maintainer role or Owner role](../../permissions.md). - You must have the [Maintainer or Owner role](../../permissions.md).
To import users: To import users:
...@@ -74,20 +84,39 @@ A success message is displayed and the new members are now displayed in the list ...@@ -74,20 +84,39 @@ A success message is displayed and the new members are now displayed in the list
## Inherited membership ## Inherited membership
When your project belongs to a group, group members inherit the membership and permission When your project belongs to a group, group members inherit their role
level for the project from the group. from the group.
![Project members page](img/project_members_v13_9.png) ![Project members page](img/project_members_v13_9.png)
From the image above, we can deduce the following things: In this example:
- Three members have access to the project.
- **User 0** is a Reporter and has inherited their role from the **demo** group,
which contains the project.
- **User 1** belongs directly to the project. In the **Source** column, they are listed
as a **Direct member**.
- **Administrator** is the [Owner](../../permissions.md) and member of all groups.
They have inherited their role from the **demo** group.
## Remove a member from a project
If a user is a direct member of a project, you can remove them.
If membership is inherited from a parent group, then the member can be removed only from the parent
group itself.
- There are 3 members that have access to the project. Prerequisite:
- User0 is a Reporter and has inherited their permissions from group `demo`
which contains current project. - You must have the [Owner role](../../permissions.md).
- User1 is shown as a **Direct member** in the **Source** column, therefore they belong directly - Optional. Unassign the member from all issues and merge requests that
to the project we're inspecting. are assigned to them.
- Administrator is the Owner and member of **all** groups and for that reason,
there is an indication of an ancestor group and inherited the [Owner role](../../permissions.md). To remove a member from a project:
1. Go to your project and select **Members**.
1. Next to the project member you want to remove, select **Remove member** **{remove}**.
1. Optional. In the confirmation box, select the **Also unassign this user from related issues and merge requests** checkbox.
1. Select **Remove member**.
## Filter and sort members ## Filter and sort members
...@@ -95,22 +124,21 @@ From the image above, we can deduce the following things: ...@@ -95,22 +124,21 @@ From the image above, we can deduce the following things:
> - [Improved](https://gitlab.com/groups/gitlab-org/-/epics/4901) in GitLab 13.9. > - [Improved](https://gitlab.com/groups/gitlab-org/-/epics/4901) in GitLab 13.9.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/299954) in GitLab 13.10. > - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/299954) in GitLab 13.10.
The following sections illustrate how you can filter and sort members in a project. To view these options, You can filter and sort members in a project.
navigate to your desired project, go to **Members**, and include the noted search terms.
### Membership filter
By default, inherited and direct members are displayed. The membership filter can be used to display only inherited or only direct members.
#### Display inherited members ### Display inherited members
To display inherited members, include `Membership` `=` `Inherited` in the search text box. 1. Go to your project and select **Members**.
1. In the **Filter members** box, select `Membership` `=` `Inherited`.
1. Press Enter.
![Project members filter inherited](img/project_members_filter_inherited_v13_9.png) ![Project members filter inherited](img/project_members_filter_inherited_v13_9.png)
#### Display direct members ### Display direct members
To display direct members, include `Membership` `=` `Direct` in the search text box. 1. Go to your project and select **Members**.
1. In the **Filter members** box, select `Membership` `=` `Direct`.
1. Press Enter.
![Project members filter direct](img/project_members_filter_direct_v13_9.png) ![Project members filter direct](img/project_members_filter_direct_v13_9.png)
...@@ -126,36 +154,41 @@ You can sort members by **Account**, **Access granted**, **Max role**, or **Last ...@@ -126,36 +154,41 @@ You can sort members by **Account**, **Access granted**, **Max role**, or **Last
![Project members sort](img/project_members_sort_v13_9.png) ![Project members sort](img/project_members_sort_v13_9.png)
## Invite people using their e-mail address ## Request access to a project
NOTE: GitLab users can request to become a member of a project.
In GitLab 13.11, you can [replace this form with a modal window](#add-a-member-modal-window).
If a user you want to give access to doesn't have an account on your GitLab 1. Go to the project you'd like to be a member of.
instance, you can invite them just by typing their e-mail address in the 1. By the project name, select **Request Access**.
user search field.
![Invite user by mail](img/add_user_email_search_v13_8.png) ![Request access button](img/request_access_button.png)
As you can imagine, you can mix inviting multiple people and adding existing An email is sent to the most recently active project maintainers.
GitLab users to the project. Up to ten project maintainers are notified.
Any project maintainer can approve or decline the request.
![Invite user by mail ready to submit](img/add_user_email_ready_v13_8.png) If a project does not have any maintainers, the notification is sent to the
most recently active owners of the project's group.
If you change your mind before your request is approved, select
**Withdraw Access Request**.
Once done, hit **Add users to project** and watch that there is a new member ## Prevent users from requesting access to a project
with the e-mail address we used above. From there on, you can resend the
invitation, change their access level, or even delete them.
![Invite user members list](img/add_user_email_accept_v13_9.png) You can prevent users from requesting access to a project.
Prerequisite:
While unaccepted, the system automatically sends reminder emails on the second, fifth, - You must be the project owner.
and tenth day after the invitation was initially sent.
After the user accepts the invitation, they are prompted to create a new 1. Go to the project and select **Settings > General**.
GitLab account using the same e-mail address the invitation was sent to. 1. Expand the **Visibility, project features, permissions** section.
1. Under **Project visibility**, select **Users can request access**.
1. Select **Save changes**.
NOTE: ## Share a project with a group
Unaccepted invites are automatically deleted after 90 days.
Instead of adding users one by one, you can [share a project with an entire group](share_project_with_groups.md).
### Add a member modal window ### Add a member modal window
...@@ -172,10 +205,10 @@ This feature might not be available to you. Check the **version history** note a ...@@ -172,10 +205,10 @@ This feature might not be available to you. Check the **version history** note a
In GitLab 13.11, you can optionally replace the form to add a member with a modal window. In GitLab 13.11, you can optionally replace the form to add a member with a modal window.
To add a member after enabling this feature: To add a member after enabling this feature:
1. Go to your project's page. 1. Go to your project and select **Members**.
1. In the left sidebar, go to **Members**, and then select **Invite members**. 1. Select **Invite members**.
1. Enter an email address, and select a role permission for this user. 1. Enter an email address and select a role.
1. (Optional) Select an **Access expiration date**. 1. Optional. Select an **Access expiration date**.
1. Select **Invite**. 1. Select **Invite**.
### Enable or disable modal window **(FREE SELF)** ### Enable or disable modal window **(FREE SELF)**
...@@ -196,65 +229,3 @@ To disable it: ...@@ -196,65 +229,3 @@ To disable it:
```ruby ```ruby
Feature.disable(:invite_members_group_modal) Feature.disable(:invite_members_group_modal)
``` ```
## Project membership and requesting access
Project owners can :
- Allow non-members to request access to the project.
- Prevent non-members from requesting access.
To configure this, go to the project settings and click on **Allow users to request access**.
GitLab users can request to become a member of a project. Go to the project you'd
like to be a member of and click the **Request Access** button on the right
side of your screen.
![Request access button](img/request_access_button.png)
After access is requested:
- Up to ten project maintainers are notified of the request via email.
Email is sent to the most recently active project maintainers.
- Any project maintainer can approve or decline the request on the members page.
NOTE:
If a project does not have any maintainers, the notification is sent to the
most recently active owners of the project's group.
![Manage access requests](img/access_requests_management_v13_9.png)
If you change your mind before your request is approved, just click the
**Withdraw Access Request** button.
![Withdraw access request button](img/withdraw_access_request_button.png)
## Share project with group
Alternatively, you can [share a project with an entire group](share_project_with_groups.md) instead of adding users one by one.
## Remove a member from the project
Only users with permissions of [Owner](../../permissions.md#group-members-permissions) can manage
project members.
You can remove a user from the project if the given member has a direct membership in the project.
If membership is inherited from a parent group, then the member can be removed only from the parent
group itself.
When removing a member, you can decide whether to unassign the user from all issues and merge
requests they are currently assigned or leave the assignments as they are.
- **Unassigning the removed member** from all issues and merge requests might be helpful when a user
is leaving a private project and you wish to revoke their access to any issues and merge requests
they are assigned.
- **Keeping the issues and merge requests assigned** might be helpful for projects that accept public
contributions where a user doesn't have to be a member to be able to contribute to issues and
merge requests.
To remove a member from a project:
1. Go to your project and select **Members**.
1. Next to the project member you want to remove, select **Remove member** **{remove}**.
1. Optional. In the confirmation box, select the **Also unassign this user from related issues and merge requests** checkbox.
1. Select **Remove member**.
...@@ -179,7 +179,7 @@ section. ...@@ -179,7 +179,7 @@ section.
You can now change the [Project visibility](../../../public_access/public_access.md). You can now change the [Project visibility](../../../public_access/public_access.md).
If you set **Project Visibility** to public, you can limit access to some features If you set **Project Visibility** to public, you can limit access to some features
to **Only Project Members**. In addition, you can select the option to to **Only Project Members**. In addition, you can select the option to
[Allow users to request access](../members/index.md#project-membership-and-requesting-access). [Allow users to request access](../members/index.md#prevent-users-from-requesting-access-to-a-project).
Use the switches to enable or disable the following features: Use the switches to enable or disable the following features:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment