diff --git a/internal/api/grpc/auth/user.go b/internal/api/grpc/auth/user.go index 1efdbe8dd2..7c874bf765 100644 --- a/internal/api/grpc/auth/user.go +++ b/internal/api/grpc/auth/user.go @@ -260,7 +260,7 @@ func appendIfNotExists(array []string, value string) []string { func ListMyProjectOrgsRequestToQuery(req *auth_pb.ListMyProjectOrgsRequest) (*query.OrgSearchQueries, error) { offset, limit, asc := obj_grpc.ListQueryToModel(req.Query) - queries, err := org.OrgQueriesToQuery(req.Queries) + queries, err := org.OrgQueriesToModel(req.Queries) if err != nil { return nil, err } diff --git a/internal/api/grpc/org/converter.go b/internal/api/grpc/org/converter.go index 3f0084c978..43fc1c18dc 100644 --- a/internal/api/grpc/org/converter.go +++ b/internal/api/grpc/org/converter.go @@ -27,35 +27,13 @@ func OrgQueryToModel(apiQuery *org_pb.OrgQuery) (query.SearchQuery, error) { return query.NewOrgNameSearchQuery(object.TextMethodToQuery(q.NameQuery.Method), q.NameQuery.Name) case *org_pb.OrgQuery_StateQuery: return query.NewOrgStateSearchQuery(OrgStateToDomain(q.StateQuery.State)) + case *org_pb.OrgQuery_IdQuery: + return query.NewOrgIDSearchQuery(q.IdQuery.Id) default: return nil, zerrors.ThrowInvalidArgument(nil, "ORG-vR9nC", "List.Query.Invalid") } } -func OrgQueriesToQuery(queries []*org_pb.OrgQuery) (_ []query.SearchQuery, err error) { - q := make([]query.SearchQuery, len(queries)) - for i, query := range queries { - q[i], err = OrgQueryToQuery(query) - if err != nil { - return nil, err - } - } - return q, nil -} - -func OrgQueryToQuery(search *org_pb.OrgQuery) (query.SearchQuery, error) { - switch q := search.Query.(type) { - case *org_pb.OrgQuery_DomainQuery: - return query.NewOrgDomainSearchQuery(object.TextMethodToQuery(q.DomainQuery.Method), q.DomainQuery.Domain) - case *org_pb.OrgQuery_NameQuery: - return query.NewOrgNameSearchQuery(object.TextMethodToQuery(q.NameQuery.Method), q.NameQuery.Name) - case *org_pb.OrgQuery_StateQuery: - return query.NewOrgStateSearchQuery(OrgStateToDomain(q.StateQuery.State)) - default: - return nil, zerrors.ThrowInvalidArgument(nil, "ADMIN-ADvsd", "List.Query.Invalid") - } -} - func OrgViewsToPb(orgs []*query.Org) []*org_pb.Org { o := make([]*org_pb.Org, len(orgs)) for i, org := range orgs { diff --git a/internal/query/org.go b/internal/query/org.go index 27bdfada76..9bff752cb1 100644 --- a/internal/query/org.go +++ b/internal/query/org.go @@ -281,6 +281,10 @@ func (q *Queries) SearchOrgs(ctx context.Context, queries *OrgSearchQueries) (or return orgs, err } +func NewOrgIDSearchQuery(value string) (SearchQuery, error) { + return NewTextQuery(OrgColumnID, value, TextEquals) +} + func NewOrgDomainSearchQuery(method TextComparison, value string) (SearchQuery, error) { return NewTextQuery(OrgColumnDomain, value, method) } diff --git a/proto/zitadel/org.proto b/proto/zitadel/org.proto index 90a6af45d2..2d6083e8bc 100644 --- a/proto/zitadel/org.proto +++ b/proto/zitadel/org.proto @@ -81,6 +81,7 @@ message OrgQuery { OrgNameQuery name_query = 1; OrgDomainQuery domain_query = 2; OrgStateQuery state_query = 3; + OrgIDQuery id_query = 4; } } @@ -123,6 +124,16 @@ message OrgStateQuery { ]; } +message OrgIDQuery { + string id = 1 [ + (validate.rules).string = {max_len: 200}, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"69629023906488334\"" + } + ]; +} + + enum OrgFieldName { ORG_FIELD_NAME_UNSPECIFIED = 0; ORG_FIELD_NAME_NAME = 1;