詳細な権限を持つカスタムユーザーロールを取得、作成、更新、削除します。


カスタムロール

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で開く