Skip to content

Роли пользователей

В звонке участники могут иметь различные роли, определяющие их права.

Типы ролей

РольОписание
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);
}

Особенности

Мьют-состояния

На создателя и администраторов не распространяются глобальные мьют-состояния звонка. Подробнее см. Управление звуком.