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
| Nom | Type | Requis | Défaut | Description |
|---|---|---|---|---|
role | "host" | "participant" | "viewer" | oui | — | Le rôle dont on veut les permissions |
Retour
interface RolePermissions {
roomAdmin: boolean;
canPublish: boolean;
canSubscribe: boolean;
canPublishData: boolean;
}
| Rôle | roomAdmin | canPublish | canSubscribe | canPublishData |
|---|---|---|---|---|
host | true | true | true | true |
participant | false | true | true | true |
viewer | false | false | true | false |
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
roomAdminn’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.