Role Select
관리자용 컴포넌트관리자(MASTER)만 쓰는 화면에 쓰입니다.
유저의 역할을 바꾸는 선택 상자입니다.
역할의 의미와 위험한 변경을 확인시켜 주는 창이 필요하다면
RoleAssignDialog를 쓰세요 (Role Manager 페이지).역할 4종을 켜고 끄는 체크박스 묶음입니다. 한 사람이 여러 역할을 가질 수 있고, 값은 역할 이름 목록(RoleName[])입니다. 마지막 하나는 끌 수 없습니다.
When to use
- 관리자 화면에서 한 사용자의 역할을 바꿀 때 (
MemberTable안에서 쓰입니다) - 초대, 사용자 생성 화면에서 역할을 고르게 할 때
Preview
선택: VIEWER, WRITER
tsx
<RoleSelect value={["VIEWER", "WRITER"]} onChange={(roles) => update(roles)} />Disabled
Props
| Prop | Type | 설명 |
|---|---|---|
value필수 | RoleName[] | 현재 가진 역할 이름 목록. |
onChange필수 | (roles: RoleName[]) => void | 체크가 바뀌면 새 역할 목록을 전달합니다. |
disabled | boolean | 잠금 여부. |
idPrefix | string | 체크박스 id 앞부분. 한 화면에 여러 개를 둘 때 겹치지 않게 합니다. |
선택지는 src/meerkit/roles.ts의 ROLES에서 만들어지므로, 역할이 바뀌면 그 파일만 고치면 됩니다.
Usage
tsx
<RoleSelect
value={member.roles.map((r) => r.name)}
disabled={!!member.deactivated_at}
onChange={(roles) => updateRoles.mutate({ id: member.id, roles })} // PUT /users/{id}/roles
/>Options
| id | value(이름) | 설명 |
|---|---|---|
| 1 | MASTER | 시스템 전체 관리자 |
| 2 | OWNER | 자신이 소유한 데이터 관리 |
| 3 | VIEWER | 조회 전용 사용자 |
| 4 | WRITER | 데이터 작성 및 수정 사용자 |
Customization
shadcn Checkbox로 만들었습니다. 역할 설명과 C·R·U·D를 함께 보여 주는 확인 창이 필요하면 RoleAssignDialog를 쓰세요.
자기 자신의 역할을 낮추거나 마지막 관리자를 바꾸는 경우의 제한은 서버 정책으로 막는 것을 권장합니다.
Related API
이 컴포넌트가 호출하는 API입니다. 누르면 요청·응답 명세로 이동합니다.
