diff --git a/app/assets/javascripts/access_level/constants.js b/app/assets/javascripts/access_level/constants.js
index 105c9f392cfcf2881655b3ec6a3c620d99dd38c2..42647678ed17d1e6f2362ef61188daa9cc4da8f2 100644
--- a/app/assets/javascripts/access_level/constants.js
+++ b/app/assets/javascripts/access_level/constants.js
@@ -116,6 +116,7 @@ export const ACCESS_LEVEL_LABELS = {
[ACCESS_LEVEL_NO_ACCESS_INTEGER]: ACCESS_LEVEL_NO_ACCESS,
[ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER]: ACCESS_LEVEL_MINIMAL_ACCESS,
[ACCESS_LEVEL_GUEST_INTEGER]: ACCESS_LEVEL_GUEST,
+ [ACCESS_LEVEL_PLANNER_INTEGER]: ACCESS_LEVEL_PLANNER,
[ACCESS_LEVEL_REPORTER_INTEGER]: ACCESS_LEVEL_REPORTER,
[ACCESS_LEVEL_DEVELOPER_INTEGER]: ACCESS_LEVEL_DEVELOPER,
[ACCESS_LEVEL_MAINTAINER_INTEGER]: ACCESS_LEVEL_MAINTAINER,
diff --git a/app/graphql/types/access_level_enum.rb b/app/graphql/types/access_level_enum.rb
index d58e7230a8e50febba230cab260d1861b51b7931..750fedb62a6208d1b2bd9937b26cee54ef15282e 100644
--- a/app/graphql/types/access_level_enum.rb
+++ b/app/graphql/types/access_level_enum.rb
@@ -8,6 +8,7 @@ class AccessLevelEnum < BaseEnum
value 'NO_ACCESS', value: Gitlab::Access::NO_ACCESS, description: 'No access.'
value 'MINIMAL_ACCESS', value: Gitlab::Access::MINIMAL_ACCESS, description: 'Minimal access.'
value 'GUEST', value: Gitlab::Access::GUEST, description: 'Guest access.'
+ value 'PLANNER', value: Gitlab::Access::PLANNER, description: 'Planner access.'
value 'REPORTER', value: Gitlab::Access::REPORTER, description: 'Reporter access.'
value 'DEVELOPER', value: Gitlab::Access::DEVELOPER, description: 'Developer access.'
value 'MAINTAINER', value: Gitlab::Access::MAINTAINER, description: 'Maintainer access.'
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 5d2c71c37ae5a606c4fcd46b305354e7ab5d1bae..fbfc89d2ccb78f0cc443d710db3038fd937cb995 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -37461,6 +37461,7 @@ Access level to a resource.
| `MINIMAL_ACCESS` | Minimal access. |
| `NO_ACCESS` | No access. |
| `OWNER` | Owner access. |
+| `PLANNER` | Planner access. |
| `REPORTER` | Reporter access. |
### `AgentTokenStatus`
@@ -38835,6 +38836,7 @@ Role of User.
| `GUEST` | Guest. |
| `MAINTAINER` | Maintainer. |
| `OWNER` | Owner. |
+| `PLANNER` | Planner. |
| `REPORTER` | Reporter. |
### `GitlabSubscriptionsUserSort`
diff --git a/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb b/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb
index fe3e8cde0c88ba6b2dd360e9fdc9c979a23c5510..2af61cd40d0e7dbf7766894348a3c4a1f7ed508e 100644
--- a/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb
+++ b/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb
@@ -7,6 +7,7 @@ class UserRoleEnum < BaseEnum
description 'Role of User'
value 'GUEST', value: :guest, description: 'Guest.'
+ value 'PLANNER', value: :planner, description: 'Planner.'
value 'REPORTER', value: :reporter, description: 'Reporter.'
value 'DEVELOPER', value: :developer, description: 'Developer.'
value 'MAINTAINER', value: :maintainer, description: 'Maintainer.'
diff --git a/ee/spec/features/groups/members/manage_groups_spec.rb b/ee/spec/features/groups/members/manage_groups_spec.rb
index 11f6da9a5ae5d9a1aa97912b9021a56115703fae..bd21e8598e4a8215f3a7b937aa7fcce8a2e79eb4 100644
--- a/ee/spec/features/groups/members/manage_groups_spec.rb
+++ b/ee/spec/features/groups/members/manage_groups_spec.rb
@@ -96,6 +96,7 @@
end
it_behaves_like "triggers an overage modal when adding a group with a given role", 'Guest'
+ it_behaves_like "triggers an overage modal when adding a group with a given role", 'Planner'
it_behaves_like "triggers an overage modal when adding a group with a given role", 'Developer'
context 'when overage modal is shown' do
@@ -118,6 +119,7 @@
end
it_behaves_like "doesn't trigger an overage modal when adding a group with a given role", 'Guest'
+ it_behaves_like "triggers an overage modal when adding a group with a given role", 'Planner'
it_behaves_like "triggers an overage modal when adding a group with a given role", 'Developer'
end
diff --git a/ee/spec/features/groups/members/manage_members_spec.rb b/ee/spec/features/groups/members/manage_members_spec.rb
index 5e9ae621b4a8bc1e777c8677505b896261d2fd04..cbd91380df3bb44e26af25c98c030264478f3830 100644
--- a/ee/spec/features/groups/members/manage_members_spec.rb
+++ b/ee/spec/features/groups/members/manage_members_spec.rb
@@ -200,18 +200,21 @@
end
include_examples 'adding one user with a given role doesn\'t trigger an overage modal', 'Guest'
+ include_examples 'shows an overage modal when adding one user with a given role', 'Planner'
include_examples 'shows an overage modal when adding one user with a given role', 'Developer'
include_examples 'adding one user by email with a given role doesn\'t trigger an overage modal', 'Guest'
+ include_examples 'adding user by email with a given role', 'Planner'
include_examples 'adding user by email with a given role', 'Developer'
end
- context 'when adding a member to a ultimate group that alerady has an overage' do
+ context 'when adding a member to a ultimate group that already has an overage' do
before do
create(:gitlab_subscription, namespace: group, hosted_plan: ultimate_plan, seats: 1, seats_in_use: 2)
end
include_examples 'shows an overage modal when adding one user with a given role', 'Developer'
+ include_examples 'shows an overage modal when adding one user with a given role', 'Planner'
include_examples 'adding one user by email with a given role doesn\'t trigger an overage modal', 'Guest'
end
diff --git a/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb b/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb
index d12f030d915e28b3772167bfbcebdba36b9357df..a300ba1253fa96c5d820f97b330afacd6b19457d 100644
--- a/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb
+++ b/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb
@@ -4,6 +4,6 @@
RSpec.describe GitlabSchema.types['GitlabSubscriptionsUserRole'] do
it 'exposes all user roles' do
- expect(described_class.values.keys).to contain_exactly(*%w[GUEST REPORTER DEVELOPER MAINTAINER OWNER])
+ expect(described_class.values.keys).to contain_exactly(*%w[GUEST PLANNER REPORTER DEVELOPER MAINTAINER OWNER])
end
end
diff --git a/spec/features/projects/members/manage_members_spec.rb b/spec/features/projects/members/manage_members_spec.rb
index e281d7d45d4f3aba407f96c8b3831e0576f85d7d..06e437fcb16f96d2d0e867f75a410d61f8fa017c 100644
--- a/spec/features/projects/members/manage_members_spec.rb
+++ b/spec/features/projects/members/manage_members_spec.rb
@@ -112,7 +112,7 @@
it 'shows Owner in the dropdown' do
within_modal do
toggle_listbox
- expect_listbox_items(%w[Guest Reporter Developer Maintainer Owner])
+ expect_listbox_items(%w[Guest Planner Reporter Developer Maintainer Owner])
end
end
end
@@ -123,7 +123,7 @@
it 'does not show the Owner option' do
within_modal do
toggle_listbox
- expect_listbox_items(%w[Guest Reporter Developer Maintainer])
+ expect_listbox_items(%w[Guest Planner Reporter Developer Maintainer])
end
end
end
diff --git a/spec/graphql/types/access_level_enum_spec.rb b/spec/graphql/types/access_level_enum_spec.rb
index 6a8d2e26e6505f8e536638deba1bb0cd72464271..8f6950b1062b51ababb2eb51b0ba1eb2ecf3eb3b 100644
--- a/spec/graphql/types/access_level_enum_spec.rb
+++ b/spec/graphql/types/access_level_enum_spec.rb
@@ -6,6 +6,7 @@
specify { expect(described_class.graphql_name).to eq('AccessLevelEnum') }
it 'exposes all the existing access levels' do
- expect(described_class.values.keys).to include(*%w[NO_ACCESS MINIMAL_ACCESS GUEST REPORTER DEVELOPER MAINTAINER OWNER])
+ expect(described_class.values.keys)
+ .to include(*%w[NO_ACCESS MINIMAL_ACCESS GUEST PLANNER REPORTER DEVELOPER MAINTAINER OWNER])
end
end