특정 접근 수준과 사용자 정의 역할로 프로젝트나 회사에 사용자를 초대합니다.


사용자 초대

inviteUser 변형을 사용하면 Blue 프로젝트나 회사에 사용자를 초대할 수 있습니다. 사용자는 미리 정의된 접근 수준이나 특정 권한이 있는 사용자 정의 역할을 부여받을 수 있습니다.

기본 예제

표준 접근 수준으로 사용자를 초대합니다:

mutation InviteUserToProject {
  inviteUser(
    input: {
      email: "newuser@example.com"
      projectId: "web-redesign"
      accessLevel: MEMBER
    }
  )
}

고급 예제

사용자 정의 역할로 여러 프로젝트에 사용자를 초대합니다:

mutation InviteUserWithCustomRole {
  inviteUser(
    input: {
      email: "contractor@example.com"
      projectIds: ["web-redesign", "mobile-app", "api-v2"]
      accessLevel: MEMBER
      roleId: "role_contractor_123"
    }
  )
}

입력 매개변수

InviteUserInput

매개변수 유형 필수 설명
email String! ✅ 예 초대할 사용자의 이메일 주소
accessLevel UserAccessLevel! ✅ 예 부여할 접근 수준 (아래 표 참조)
projectId String 아니오 단일 프로젝트 ID (companyId와 상호 배타적)
projectIds [String!] 아니오 companyId를 사용할 때 여러 프로젝트 ID
companyId String 아니오 회사 수준 초대를 위한 회사 ID (projectId와 상호 배타적)
roleId String 아니오 사용자 정의 역할 ID (accessLevel: MEMBER 필요)

UserAccessLevel 값

설명
OWNER 프로젝트/회사를 완전히 제어할 수 있음
ADMIN 관리 접근, 사용자 및 설정 관리 가능
MEMBER 전체 기능을 갖춘 표준 회원 접근
CLIENT 외부 클라이언트를 위한 제한된 접근
COMMENT_ONLY 기록을 보기만 하고 댓글을 달 수 있음
VIEW_ONLY 프로젝트에 대한 읽기 전용 접근

응답 필드

필드 유형 설명
success Boolean! 초대가 성공적으로 전송되었는지 여부

필수 권한

사용자는 다른 사용자를 초대할 수 있는 충분한 권한을 가져야 합니다. 권한 계층이 적용됩니다:

귀하의 역할 초대 가능
OWNER ✅ 모든 접근 수준
ADMIN ✅ ADMIN, MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (OWNER 초대 불가)
MEMBER ✅ MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (OWNER 또는 ADMIN 초대 불가)
CLIENT ✅ CLIENT만 가능
COMMENT_ONLY ❌ 초대 불가
VIEW_ONLY ❌ 초대 불가

참고: 회사 초대 (using companyId)의 경우, 회사 소유자만 사용자를 초대할 수 있습니다.

초대 유형

프로젝트 초대

단일 프로젝트에 사용자를 초대합니다:

  • projectId 매개변수 사용
  • companyId를 동시에 사용할 수 없음
  • 초대자는 프로젝트에 접근할 수 있어야 함
  • 접근 수준 제한이 적용됨

회사 초대

회사의 사용자에게 초대 (선택적으로 특정 프로젝트 포함):

  • companyId 매개변수 사용
  • projectId를 동시에 사용할 수 없음
  • 회사 소유자만 이 방법을 사용할 수 있음
  • 포함할 프로젝트를 지정하기 위해 projectIds 배열 사용
  • projectIds가 생략되면 사용자는 회사 접근만 받음

사용자 정의 역할

사용자 정의 역할을 사용할 때:

  1. accessLevelMEMBER로 설정
  2. 사용자 정의 역할의 roleId 제공
  3. 사용자는 사용자 정의 역할에 정의된 모든 권한을 상속받음
  4. 사용자 정의 역할은 프로젝트별로 적용됨

사용 가능한 사용자 정의 역할을 검색하려면 projectUserRoles 쿼리를 사용하십시오.

오류 응답

사용자가 이미 프로젝트에 있음

{
  "errors": [{
    "message": "User is already in the project.",
    "extensions": {
      "code": "USER_ALREADY_IN_THE_PROJECT"
    }
  }]
}

권한 부족

{
  "errors": [{
    "message": "You don't have permission to invite users with this access level",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

잘못된 프로젝트

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

초대 한도 초과

{
  "errors": [{
    "message": "Unable to invite more people.",
    "extensions": {
      "code": "INVITATION_LIMIT"
    }
  }]
}

자신을 초대할 수 없음

{
  "errors": [{
    "message": "You are not allowed to add yourself.",
    "extensions": {
      "code": "ADD_SELF"
    }
  }]
}

잘못된 사용자 정의 역할

{
  "errors": [{
    "message": "Project user role was not found.",
    "extensions": {
      "code": "PROJECT_USER_ROLE_NOT_FOUND"
    }
  }]
}

회사 금지

{
  "errors": [{
    "message": "Company is banned",
    "extensions": {
      "code": "COMPANY_BANNED"
    }
  }]
}

중요 참고 사항

  • 이메일 검증: 이메일 주소는 초대 전 정규화 및 검증됩니다.
  • 초대 만료: 초대는 7일 후 만료되며 수락되지 않으면 다시 보내야 합니다.
  • 자동 알림: Blue는 새로운 사용자에게 자동으로 초대 이메일을 보냅니다.
  • 회사 소유자: 회사 소유자는 모든 프로젝트에서 자동으로 ADMIN 접근을 받습니다.
  • 청구 영향: 사용자를 추가하면 사용자당 요금제가 있는 경우 구독에 영향을 미칠 수 있습니다.
  • 활동 기록: 모든 사용자 초대는 감사 목적으로 기록됩니다.
  • 매개변수 독점성: projectId 또는 companyId 중 하나를 제공해야 하며, 둘 다 제공할 수 없습니다.
  • 회사 제한: 회사 소유자만 companyId 매개변수를 사용할 수 있습니다.
  • 자기 초대: 사용자는 자신을 초대할 수 없습니다 (이 경우 ADD_SELF 오류가 발생합니다).

관련 작업

AI 어시스턴트

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

어떻게 도와드릴까요?

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

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