Пригласите пользователей в проекты или компании с определенными уровнями доступа и пользовательскими ролями.
Приглашение пользователя
Мутация 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!] | Нет | Несколько ID проектов при использовании companyId |
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 |
❌ Не может приглашать |
Примечание: Для приглашений на уровне компании (используя 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
)
Связанные операции
- Список пользователей - Просмотр всех пользователей в проекте или компании
- Удалить пользователя - Удалить пользователей из проектов
- Пользовательские роли - Управление пользовательскими ролями пользователей