From 0349af9608dff91111323915c935426f6e5dc45e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Wed, 25 Oct 2023 23:50:34 +0200 Subject: [PATCH] fix ambiguous container matches. --- internal/room/manager.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/internal/room/manager.go b/internal/room/manager.go index 0e6bca5..c1850aa 100644 --- a/internal/room/manager.go +++ b/internal/room/manager.go @@ -692,6 +692,12 @@ func (manager *RoomManagerCtx) Create(ctx context.Context, settings types.RoomSe } func (manager *RoomManagerCtx) GetEntry(ctx context.Context, id string) (*types.RoomEntry, error) { + // we don't support id shorter than 12 chars + // because they can be ambiguous + if len(id) < 12 { + return nil, types.ErrRoomNotFound + } + container, err := manager.containerById(ctx, id) if err != nil { return nil, err @@ -706,7 +712,18 @@ func (manager *RoomManagerCtx) GetEntryByName(ctx context.Context, name string) return nil, err } - return manager.containerToEntry(*container) + roomEntry, err := manager.containerToEntry(*container) + if err != nil { + return nil, err + } + + // we can match containers starting with given name + // but we want to match only exact name + if roomEntry.Name != name { + return nil, types.ErrRoomNotFound + } + + return roomEntry, nil } func (manager *RoomManagerCtx) Remove(ctx context.Context, id string) error {