diff --git a/users/service.go b/users/service.go index dfc1ebeb8c7..0a168f41ba5 100644 --- a/users/service.go +++ b/users/service.go @@ -5,6 +5,7 @@ package users import ( "context" + "strings" "time" "github.com/absmach/magistrala" @@ -523,6 +524,11 @@ func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID } pm.IDs = userIDs + var nameQuery string + if pm.Name != "" && len(pm.IDs) != 0 { + nameQuery = pm.Name + pm.Name = "" + } cp, err := svc.clients.RetrieveAll(ctx, pm) if err != nil { return mgclients.MembersPage{}, errors.Wrap(svcerr.ErrViewEntity, err) @@ -538,6 +544,16 @@ func (svc service) ListMembers(ctx context.Context, token, objectKind, objectID } } + if nameQuery != "" { + filteredClients := make([]mgclients.Client, 0, len(cp.Clients)) + for _, c := range cp.Clients { + if strings.Contains(c.Name, nameQuery) { + filteredClients = append(filteredClients, c) + } + } + cp.Clients = filteredClients + } + if pm.ListPerms && len(cp.Clients) > 0 { g, ctx := errgroup.WithContext(ctx)