diff --git a/pkg/service/auth.go b/pkg/service/auth.go index 8ea3a3617..58e0ba7c1 100644 --- a/pkg/service/auth.go +++ b/pkg/service/auth.go @@ -172,6 +172,16 @@ func EnsureCreatePermission(ctx context.Context) error { return nil } +func GetRoomConfiguration(ctx context.Context) string { + + claims := GetGrants(ctx) + + if claims == nil || claims.Video == nil { + return "" + } + return claims.Video.RoomConfiguration +} + func EnsureListPermission(ctx context.Context) error { claims := GetGrants(ctx) if claims == nil || claims.Video == nil || !claims.Video.RoomList { diff --git a/pkg/service/roomallocator.go b/pkg/service/roomallocator.go index 73d7b4fce..131e77c41 100644 --- a/pkg/service/roomallocator.go +++ b/pkg/service/roomallocator.go @@ -207,7 +207,7 @@ func (r *StandardRoomAllocator) applyNamedRoomConfiguration(req *livekit.CreateR conf, ok := r.config.Room.RoomConfigurations[req.ConfigName] if !ok { - return nil, psrpc.NewErrorf(psrpc.InvalidArgument, "unknown roomc confguration in create room request") + return req, psrpc.NewErrorf(psrpc.InvalidArgument, "unknown room confguration in create room request") } clone := proto.Clone(req).(*livekit.CreateRoomRequest) diff --git a/pkg/service/rtcservice.go b/pkg/service/rtcservice.go index 2d8b18c8b..e6d82426f 100644 --- a/pkg/service/rtcservice.go +++ b/pkg/service/rtcservice.go @@ -515,7 +515,8 @@ func (s *RTCService) startConnection( var cr connectionResult var created bool var err error - cr.Room, created, err = s.roomAllocator.CreateRoom(ctx, &livekit.CreateRoomRequest{Name: string(roomName)}) + + cr.Room, created, err = s.roomAllocator.CreateRoom(ctx, &livekit.CreateRoomRequest{Name: string(roomName), ConfigName: GetRoomConfiguration(ctx)}) if err != nil { return cr, nil, err }