특정 접근 수준과 사용자 정의 역할로 프로젝트나 회사에 사용자를 초대합니다.
사용자 초대
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
가 생략되면 사용자는 회사 접근만 받음
사용자 정의 역할
사용자 정의 역할을 사용할 때:
accessLevel
를MEMBER
로 설정- 사용자 정의 역할의
roleId
제공 - 사용자는 사용자 정의 역할에 정의된 모든 권한을 상속받음
- 사용자 정의 역할은 프로젝트별로 적용됨
사용 가능한 사용자 정의 역할을 검색하려면 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
오류가 발생합니다).