Add MEMBER_ROLE to LEVEL_TYPES frontend constants
## Context | | | |---|---| | **Phase** | 4 of 6 | | **Parallel with** | https://gitlab.com/gitlab-org/gitlab/-/work_items/594885+ | | **Blocked by** | https://gitlab.com/gitlab-org/gitlab/-/work_items/594880+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594881+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594882+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594883+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594884+ | | **Unblocks** | https://gitlab.com/gitlab-org/gitlab/-/work_items/594887+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594888+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594889+ <br> https://gitlab.com/gitlab-org/gitlab/-/work_items/594890+ | ## Summary Add `MEMBER_ROLE: 'member_role'` to the `LEVEL_TYPES` constant in both the project and group settings constants files so that the new type can be used consistently across frontend components. ## Background `LEVEL_TYPES` in `app/assets/javascripts/projects/settings/constants.js` defines the string identifiers used to categorise items in the access dropdown (`role`, `user`, `group`, `deploy_key`). A parallel constant exists for groups at `app/assets/javascripts/groups/settings/constants.js`. Adding `MEMBER_ROLE` here makes it available across all components that import from these files and ensures consistent naming. ## Changes required ### `app/assets/javascripts/projects/settings/constants.js` ```javascript export const LEVEL_TYPES = { ROLE: 'role', USER: 'user', DEPLOY_KEY: 'deploy_key', GROUP: 'group', MEMBER_ROLE: 'member_role', }; ``` ### `app/assets/javascripts/groups/settings/constants.js` ```javascript export const LEVEL_TYPES = { ROLE: 'role', GROUP: 'group', USER: 'user', MEMBER_ROLE: 'member_role' }; ``` ## Notes - Adding `MEMBER_ROLE` to `LEVEL_TYPES` in CE is safe — the dropdown component only renders the custom roles section when `customRoles.length > 0` (which is only populated in EE). There is no risk of showing empty custom role sections in CE. - The string value `'member_role'` must match the `type` string returned by the backend (`humanize_member_role` dispatches from `type == :member_role`), and must match the key used in `setDataForSave` to detect `member_role_id` items (Issue 14). ## Testing - No dedicated test needed — this is a constants change. Tests in Issues 13 and 14 will validate the constant is used correctly. ## Dependencies None — can be done immediately, in parallel with all other issues. ## Labels
issue