add role assignment page (#10115)

## Context
This PR introduces the "assignment" tab in the Role edit page, currently
allowing admin users to assign workspace members to specific roles.

Note: For now, a user can only have one role and a modal will warn you
if you try to re-assign a user to a new role.

## Test
<img width="648" alt="Screenshot 2025-02-10 at 17 59 21"
src="https://github.com/user-attachments/assets/dabd7a17-6aca-4d2b-95d8-46182f53e1e8"
/>
<img width="668" alt="Screenshot 2025-02-10 at 17 59 33"
src="https://github.com/user-attachments/assets/802aab7a-db67-4f83-9a44-35773df100f7"
/>
<img width="629" alt="Screenshot 2025-02-10 at 17 59 42"
src="https://github.com/user-attachments/assets/277db061-3f05-4ccd-8a83-7a96d6c1673e"
/>
This commit is contained in:
Weiko
2025-02-11 14:51:31 +01:00
committed by GitHub
parent 179d3ae2a4
commit 02ced028e5
26 changed files with 813 additions and 70 deletions

View File

@ -0,0 +1,11 @@
import { gql } from '@apollo/client';
export const ROLE_FRAGMENT = gql`
fragment RoleFragment on Role {
id
label
description
canUpdateAllSettings
isEditable
}
`;

View File

@ -0,0 +1,22 @@
import { ROLE_FRAGMENT } from '@/settings/roles/graphql/fragments/roleFragment';
import { WORKSPACE_MEMBER_QUERY_FRAGMENT } from '@/workspace-member/graphql/fragments/workspaceMemberQueryFragment';
import { gql } from '@apollo/client';
export const UPDATE_WORKSPACE_MEMBER_ROLE = gql`
${WORKSPACE_MEMBER_QUERY_FRAGMENT}
${ROLE_FRAGMENT}
mutation UpdateWorkspaceMemberRole(
$workspaceMemberId: String!
$roleId: String
) {
updateWorkspaceMemberRole(
workspaceMemberId: $workspaceMemberId
roleId: $roleId
) {
...WorkspaceMemberQueryFragment
roles {
...RoleFragment
}
}
}
`;

View File

@ -1,15 +1,13 @@
import { ROLE_FRAGMENT } from '@/settings/roles/graphql/fragments/roleFragment';
import { WORKSPACE_MEMBER_QUERY_FRAGMENT } from '@/workspace-member/graphql/fragments/workspaceMemberQueryFragment';
import { gql } from '@apollo/client';
export const GET_ROLES = gql`
${WORKSPACE_MEMBER_QUERY_FRAGMENT}
${ROLE_FRAGMENT}
query GetRoles {
getRoles {
id
label
description
canUpdateAllSettings
isEditable
...RoleFragment
workspaceMembers {
...WorkspaceMemberQueryFragment
}