세분화된 권한으로 사용자 정의 역할을 검색, 생성, 업데이트 및 삭제합니다.
사용자 정의 역할
Blue의 사용자 정의 역할을 사용하면 팀의 요구에 맞게 정확한 권한 세트를 정의할 수 있습니다. 표준 액세스 수준(OWNER, ADMIN, MEMBER 등) 외에도 사용자 정의 역할은 사용자가 프로젝트 내에서 볼 수 있는 것과 할 수 있는 것에 대한 세부적인 제어를 제공합니다.
기본 예제 - 사용자 정의 역할 목록
프로젝트에 대한 모든 사용자 정의 역할을 검색합니다:
query GetProjectRoles {
projectUserRoles(filter: { projectId: "web-redesign" }) {
id
name
description
allowInviteOthers
canDeleteRecords
}
}
고급 예제 - 사용자 정의 역할 생성
특정 권한을 가진 계약자 역할을 생성합니다:
mutation CreateContractorRole {
createProjectUserRole(
input: {
projectId: "web-redesign"
name: "External Contractor"
description: "Limited access for external contractors"
allowInviteOthers: false
allowMarkRecordsAsDone: true
canDeleteRecords: false
showOnlyAssignedTodos: true
isActivityEnabled: true
isFormsEnabled: false
isWikiEnabled: true
isChatEnabled: false
isDocsEnabled: true
isFilesEnabled: true
isRecordsEnabled: true
isPeopleEnabled: false
}
) {
id
name
}
}
사용 가능한 작업
쿼리: projectUserRoles
프로젝트에 대한 모든 사용자 정의 역할을 검색합니다.
입력 매개변수
매개변수 | 유형 | 필수 | 설명 |
---|---|---|---|
filter.projectId |
String | 아니오 | 프로젝트 ID 또는 슬러그(제공되지 않으면 모든 접근 가능한 프로젝트의 역할을 반환) |
변형: createProjectUserRole
특정 권한을 가진 새 사용자 정의 역할을 생성합니다.
입력 매개변수
매개변수 | 유형 | 필수 | 설명 |
---|---|---|---|
projectId |
String! | ✅ 예 | 프로젝트 ID 또는 슬러그 |
name |
String! | ✅ 예 | 역할 이름 |
description |
String | 아니오 | 역할 설명 |
Permission Flags | |||
allowInviteOthers |
Boolean | 아니오 | 새 사용자를 초대할 수 있음(기본값: false) |
allowMarkRecordsAsDone |
Boolean | 아니오 | 작업을 완료할 수 있음(기본값: false) |
canDeleteRecords |
Boolean | 아니오 | 기록을 삭제할 수 있음(기본값: true) |
Feature Access | |||
isActivityEnabled |
Boolean | 아니오 | 활동 섹션에 접근할 수 있음(기본값: true) |
isChatEnabled |
Boolean | 아니오 | 채팅에 접근할 수 있음(기본값: true) |
isDocsEnabled |
Boolean | 아니오 | 문서에 접근할 수 있음(기본값: true) |
isFilesEnabled |
Boolean | 아니오 | 파일에 접근할 수 있음(기본값: true) |
isFormsEnabled |
Boolean | 아니오 | 양식에 접근할 수 있음(기본값: true) |
isWikiEnabled |
Boolean | 아니오 | 위키에 접근할 수 있음(기본값: true) |
isRecordsEnabled |
Boolean | 아니오 | 기록에 접근할 수 있음(기본값: true) |
isPeopleEnabled |
Boolean | 아니오 | 사람 섹션에 접근할 수 있음(기본값: true) |
Visibility Settings | |||
showOnlyAssignedTodos |
Boolean | 아니오 | 할당된 작업만 보기(기본값: false) |
showOnlyMentionedComments |
Boolean | 아니오 | 언급된 댓글만 보기(기본값: false) |
변형: updateProjectUserRole
기존 사용자 정의 역할을 업데이트합니다.
입력 매개변수
createProjectUserRole
와 동일하며, 추가로:
매개변수 | 유형 | 필수 | 설명 |
---|---|---|---|
roleId |
String! | ✅ 예 | 업데이트할 역할의 ID |
변형: deleteProjectUserRole
사용자 정의 역할을 삭제합니다.
입력 매개변수
매개변수 | 유형 | 필수 | 설명 |
---|---|---|---|
roleId |
String! | ✅ 예 | 삭제할 역할의 ID |
projectId |
String! | ✅ 예 | 프로젝트 ID 또는 슬러그 |
응답 필드
ProjectUserRole 객체
필드 | 유형 | 설명 |
---|---|---|
id |
String! | 고유한 역할 식별자 |
name |
String! | 역할 이름 |
description |
String | 역할 설명 |
createdAt |
DateTime! | 생성 타임스탬프 |
updatedAt |
DateTime! | 마지막 업데이트 타임스탬프 |
Permissions | ||
allowInviteOthers |
Boolean! | 사용자를 초대할 수 있음 |
allowMarkRecordsAsDone |
Boolean! | 작업을 완료할 수 있음 |
canDeleteRecords |
Boolean! | 기록을 삭제할 수 있음 |
Feature Flags | ||
isActivityEnabled |
Boolean! | 활동 섹션 접근 |
isChatEnabled |
Boolean! | 채팅 접근 |
isDocsEnabled |
Boolean! | 문서 접근 |
isFilesEnabled |
Boolean! | 파일 접근 |
isFormsEnabled |
Boolean! | 양식 접근 |
isWikiEnabled |
Boolean! | 위키 접근 |
isRecordsEnabled |
Boolean! | 기록 접근 |
isPeopleEnabled |
Boolean! | 사람 섹션 접근 |
Visibility | ||
showOnlyAssignedTodos |
Boolean! | 작업 가시성 필터 |
showOnlyMentionedComments |
Boolean! | 댓글 가시성 필터 |
필수 권한
작업 | 필수 권한 |
---|---|
projectUserRoles |
Any project member |
createProjectUserRole |
Project OWNER or ADMIN |
updateProjectUserRole |
Project OWNER or ADMIN |
deleteProjectUserRole |
Project OWNER or ADMIN |
오류 응답
권한 부족
{
"errors": [{
"message": "You don't have permission to manage custom roles",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
역할을 찾을 수 없음
{
"errors": [{
"message": "Custom role not found",
"extensions": {
"code": "PROJECT_USER_ROLE_NOT_FOUND"
}
}]
}
역할 한도 초과
{
"errors": [{
"message": "Project user role limit reached.",
"extensions": {
"code": "PROJECT_USER_ROLE_LIMIT"
}
}]
}
중요 참고 사항
- 기본 권한: 역할을 생성할 때 지정되지 않은 불리언 권한은 기본적으로 false로 설정되며,
canDeleteRecords
는 기본적으로 true입니다. - 역할 할당:
accessLevel: MEMBER
를 설정하고roleId
를inviteUser
변형에 제공하여 사용자 정의 역할을 할당합니다. - 계층 구조: 사용자 정의 역할은 계층 구조 목적을 위해 MEMBER 수준으로 처리됩니다.
- 역할 한도: 각 프로젝트는 최대 20개의 사용자 정의 역할을 가질 수 있습니다.
- 기능 접근: 기능 플래그는 애플리케이션의 전체 섹션에 대한 접근을 제어합니다.
사용 사례
계약자 역할
{
name: "Contractor",
allowInviteOthers: false,
canDeleteRecords: false,
showOnlyAssignedTodos: true,
isActivityEnabled: true,
isChatEnabled: false,
isPeopleEnabled: false
}
부서장
{
name: "Department Lead",
allowInviteOthers: true,
allowMarkRecordsAsDone: true,
canDeleteRecords: true,
isActivityEnabled: true,
isWikiEnabled: true,
isPeopleEnabled: true
}
읽기 전용 관찰자
{
name: "Observer",
allowMarkRecordsAsDone: false,
canDeleteRecords: false,
allowInviteOthers: false,
showOnlyMentionedComments: true,
isFormsEnabled: false
}