mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-12 14:54:33 +00:00
fix: refactor user discovery search
This commit is contained in:
@@ -291,19 +291,24 @@ export async function createInviteCode(userId: string, host: string | null) {
|
||||
);
|
||||
}
|
||||
|
||||
export async function listUsers({
|
||||
loginName,
|
||||
userName,
|
||||
email,
|
||||
organizationId,
|
||||
}: {
|
||||
export type ListUsersCommand = {
|
||||
loginName?: string;
|
||||
userName?: string;
|
||||
email?: string;
|
||||
phone?: string;
|
||||
organizationId?: string;
|
||||
}) {
|
||||
};
|
||||
|
||||
export async function listUsers({
|
||||
loginName,
|
||||
userName,
|
||||
phone,
|
||||
email,
|
||||
organizationId,
|
||||
}: ListUsersCommand) {
|
||||
const queries: SearchQuery[] = [];
|
||||
|
||||
// either loginName or userName and email or phone are required
|
||||
if (loginName) {
|
||||
queries.push(
|
||||
create(SearchQuerySchema, {
|
||||
@@ -316,9 +321,57 @@ export async function listUsers({
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
} else if (userName && (email || phone)) {
|
||||
const userNameQuery = create(SearchQuerySchema, {
|
||||
query: {
|
||||
case: "userNameQuery",
|
||||
value: {
|
||||
userName: userName,
|
||||
method: TextQueryMethod.EQUALS,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (userName) {
|
||||
const orQueries: SearchQuery[] = [userNameQuery];
|
||||
|
||||
if (email) {
|
||||
const emailQuery = create(SearchQuerySchema, {
|
||||
query: {
|
||||
case: "emailQuery",
|
||||
value: {
|
||||
emailAddress: email,
|
||||
method: TextQueryMethod.EQUALS,
|
||||
},
|
||||
},
|
||||
});
|
||||
orQueries.push(emailQuery);
|
||||
}
|
||||
|
||||
if (phone) {
|
||||
// TODO add after https://github.com/zitadel/zitadel/issues/9016 is merged
|
||||
// const phoneQuery = create(SearchQuerySchema, {
|
||||
// query: {
|
||||
// case: "phoneQuery",
|
||||
// value: {
|
||||
// emailAddress: email,
|
||||
// method: TextQueryMethod.EQUALS,
|
||||
// },
|
||||
// },
|
||||
// });
|
||||
// orQueries.push(phoneQuery);
|
||||
}
|
||||
|
||||
queries.push(
|
||||
create(SearchQuerySchema, {
|
||||
query: {
|
||||
case: "orQuery",
|
||||
value: {
|
||||
queries: orQueries,
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
} else if (userName) {
|
||||
queries.push(
|
||||
create(SearchQuerySchema, {
|
||||
query: {
|
||||
@@ -345,19 +398,6 @@ export async function listUsers({
|
||||
);
|
||||
}
|
||||
|
||||
if (email) {
|
||||
queries.push(
|
||||
create(SearchQuerySchema, {
|
||||
query: {
|
||||
case: "emailQuery",
|
||||
value: {
|
||||
emailAddress: email,
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
return userService.listUsers({ queries: queries });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user