세분화된 권한으로 사용자 정의 역할을 검색, 생성, 업데이트 및 삭제합니다.


사용자 정의 역할

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를 설정하고 roleIdinviteUser 변형에 제공하여 사용자 정의 역할을 할당합니다.
  • 계층 구조: 사용자 정의 역할은 계층 구조 목적을 위해 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
}

관련 작업

AI 어시스턴트

응답은 AI를 사용하여 생성되며 오류가 포함될 수 있습니다.

어떻게 도와드릴까요?

Blue 또는 이 문서에 대해 궁금한 점이 있으면 무엇이든 물어보세요.

전송하려면 Enter • 새 줄을 추가하려면 Shift+Enter • ⌘I를 눌러 열기