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