permissionsForRole

expérimentaldepuis 0.1.0@legba-core/realtime

permissionsForRole

Ce que ça fait

Rend les permissions média associées à un rôle : host, participant ou viewer.

Signature

function permissionsForRole(role: ParticipantRole): RolePermissions

Paramètres

NomTypeRequisDéfautDescription
role"host" | "participant" | "viewer"ouiLe rôle dont on veut les permissions

Retour

interface RolePermissions {
  roomAdmin: boolean;
  canPublish: boolean;
  canSubscribe: boolean;
  canPublishData: boolean;
}
RôleroomAdmincanPublishcanSubscribecanPublishData
hosttruetruetruetrue
participantfalsetruetruetrue
viewerfalsefalsetruefalse

Erreurs

Aucune — role est déjà typé par ParticipantRole, aucune valeur hors énumération ne peut y être passée sans erreur de type.

Exemple minimal

import { permissionsForRole } from "@legba-core/realtime";

permissionsForRole("viewer");
// { roomAdmin: false, canPublish: false, canSubscribe: true, canPublishData: false }

Exemple complet

createAccessToken appelle déjà cette fonction en interne pour construire le grant du jeton — l’appeler soi-même sert surtout à afficher les permissions d’un rôle côté interface, avant même d’émettre un jeton.

Pièges

  • roomAdmin n’est pas visible dans la réponse de connexion du serveur LiveKit (participant.permission) : c’est une permission vérifiée côté serveur pour les actions d’administration, pas un indicateur média.

Voir aussi