Роли пользователей
В звонке участники могут иметь различные роли, определяющие их права.
Типы ролей
| Роль | Описание |
|---|---|
CREATOR | Создатель звонка. Имеет все права |
ADMIN | Администратор. Может управлять участниками |
USER | Обычный участник |
javascript
import { UserRole } from '@vkontakte/calls-sdk';
// UserRole.CREATOR
// UserRole.ADMIN
// UserRole.USERОтслеживание своих ролей
javascript
await SDK.init({
// ...
onLocalRolesChanged: (roles, isInitial) => {
// roles - массив текущих ролей
// isInitial - true при первом получении ролей
const isAdmin = roles.includes(UserRole.ADMIN) ||
roles.includes(UserRole.CREATOR);
if (isAdmin) {
// Показать админские элементы управления
}
}
});Отслеживание ролей других участников
javascript
await SDK.init({
// ...
onRolesChanged: (userId, roles) => {
console.log(`Роли ${userId}:`, roles);
}
});Выдача и отзыв ролей
Администраторы и создатели могут управлять ролями других участников:
javascript
import { UserRole, ExternalIdType } from '@vkontakte/calls-sdk';
const userId = { id: 'user123', type: ExternalIdType.USER };
// Выдать роль админа
await SDK.grantRoles(userId, [UserRole.ADMIN]);
// Забрать роль админа
await SDK.grantRoles(userId, [UserRole.ADMIN], true);Права ролей
Создатель (CREATOR)
- Все права администратора
- Управление ссылкой для подключения
- Удаление звонка
Администратор (ADMIN)
- Мьют/анмьют участников
- Удаление участников из звонка
- Закрепление участника
- Управление записью
- Управление комнатами
- Выдача ролей
Пользователь (USER)
- Участие в звонке
- Управление своим медиа
- Отправка реакций
- Поднятие руки
Проверка прав
javascript
function canManageParticipants(roles) {
return roles.includes(UserRole.ADMIN) ||
roles.includes(UserRole.CREATOR);
}
function isCreator(roles) {
return roles.includes(UserRole.CREATOR);
}Особенности
Мьют-состояния
На создателя и администраторов не распространяются глобальные мьют-состояния звонка. Подробнее см. Управление звуком.