mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-11 22:52:46 +00:00
rm singleton
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { Client, createClientFor } from "@zitadel/client";
|
import { createClientFor } from "@zitadel/client";
|
||||||
import { createServerTransport } from "@zitadel/client/node";
|
import { createServerTransport } from "@zitadel/client/node";
|
||||||
import { IdentityProviderService } from "@zitadel/proto/zitadel/idp/v2/idp_service_pb";
|
import { IdentityProviderService } from "@zitadel/proto/zitadel/idp/v2/idp_service_pb";
|
||||||
import { OIDCService } from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
|
import { OIDCService } from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
|
||||||
@@ -39,86 +39,3 @@ export async function createServiceForHost<T extends ServiceClass>(
|
|||||||
|
|
||||||
return createClientFor<T>(service)(transport);
|
return createClientFor<T>(service)(transport);
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ServiceInitializer {
|
|
||||||
public idpService: Client<typeof IdentityProviderService> | null = null;
|
|
||||||
public orgService: Client<typeof OrganizationService> | null = null;
|
|
||||||
public sessionService: Client<typeof SessionService> | null = null;
|
|
||||||
public userService: Client<typeof UserService> | null = null;
|
|
||||||
public oidcService: Client<typeof OIDCService> | null = null;
|
|
||||||
public settingsService: Client<typeof SettingsService> | null = null;
|
|
||||||
|
|
||||||
private static instance: ServiceInitializer;
|
|
||||||
|
|
||||||
constructor(private host: string) {
|
|
||||||
this.initializeServices();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static async getInstance(host: string): Promise<ServiceInitializer> {
|
|
||||||
if (!ServiceInitializer.instance) {
|
|
||||||
ServiceInitializer.instance = new ServiceInitializer(host);
|
|
||||||
await ServiceInitializer.instance.initializeServices();
|
|
||||||
}
|
|
||||||
return ServiceInitializer.instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
async initializeServices() {
|
|
||||||
this.idpService = await createServiceForHost(
|
|
||||||
IdentityProviderService,
|
|
||||||
this.host,
|
|
||||||
);
|
|
||||||
this.orgService = await createServiceForHost(
|
|
||||||
OrganizationService,
|
|
||||||
this.host,
|
|
||||||
);
|
|
||||||
this.sessionService = await createServiceForHost(SessionService, this.host);
|
|
||||||
this.userService = await createServiceForHost(UserService, this.host);
|
|
||||||
this.oidcService = await createServiceForHost(OIDCService, this.host);
|
|
||||||
this.settingsService = await createServiceForHost(
|
|
||||||
SettingsService,
|
|
||||||
this.host,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public getSettingsService(): Client<typeof SettingsService> {
|
|
||||||
if (!this.settingsService) {
|
|
||||||
throw new Error("SettingsService is not initialized");
|
|
||||||
}
|
|
||||||
return this.settingsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public getUserService(): Client<typeof UserService> {
|
|
||||||
if (!this.userService) {
|
|
||||||
throw new Error("UserService is not initialized");
|
|
||||||
}
|
|
||||||
return this.userService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public getOrgService(): Client<typeof OrganizationService> {
|
|
||||||
if (!this.orgService) {
|
|
||||||
throw new Error("OrganizationService is not initialized");
|
|
||||||
}
|
|
||||||
return this.orgService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public getSessionService(): Client<typeof SessionService> {
|
|
||||||
if (!this.sessionService) {
|
|
||||||
throw new Error("SessionService is not initialized");
|
|
||||||
}
|
|
||||||
return this.sessionService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public getIDPService(): Client<typeof IdentityProviderService> {
|
|
||||||
if (!this.idpService) {
|
|
||||||
throw new Error("IDPService is not initialized");
|
|
||||||
}
|
|
||||||
return this.idpService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public getOIDCService(): Client<typeof OIDCService> {
|
|
||||||
if (!this.oidcService) {
|
|
||||||
throw new Error("OIDCService is not initialized");
|
|
||||||
}
|
|
||||||
return this.oidcService;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
import { create, Duration } from "@zitadel/client";
|
import { Client, create, Duration } from "@zitadel/client";
|
||||||
import { createServerTransport } from "@zitadel/client/node";
|
|
||||||
import { createSystemServiceClient } from "@zitadel/client/v1";
|
|
||||||
import { makeReqCtx } from "@zitadel/client/v2";
|
import { makeReqCtx } from "@zitadel/client/v2";
|
||||||
|
import { IdentityProviderService } from "@zitadel/proto/zitadel/idp/v2/idp_service_pb";
|
||||||
import { TextQueryMethod } from "@zitadel/proto/zitadel/object/v2/object_pb";
|
import { TextQueryMethod } from "@zitadel/proto/zitadel/object/v2/object_pb";
|
||||||
import { CreateCallbackRequest } from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
|
import { CreateCallbackRequest } from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
|
||||||
import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb";
|
import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb";
|
||||||
|
import { OrganizationService } from "@zitadel/proto/zitadel/org/v2/org_service_pb";
|
||||||
import { RequestChallenges } from "@zitadel/proto/zitadel/session/v2/challenge_pb";
|
import { RequestChallenges } from "@zitadel/proto/zitadel/session/v2/challenge_pb";
|
||||||
import { Checks } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
import {
|
||||||
|
Checks,
|
||||||
|
SessionService,
|
||||||
|
} from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
||||||
import { LoginSettings } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
import { LoginSettings } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
||||||
|
import { SettingsService } from "@zitadel/proto/zitadel/settings/v2/settings_service_pb";
|
||||||
import { SendEmailVerificationCodeSchema } from "@zitadel/proto/zitadel/user/v2/email_pb";
|
import { SendEmailVerificationCodeSchema } from "@zitadel/proto/zitadel/user/v2/email_pb";
|
||||||
import type { RedirectURLsJson } from "@zitadel/proto/zitadel/user/v2/idp_pb";
|
import type { RedirectURLsJson } from "@zitadel/proto/zitadel/user/v2/idp_pb";
|
||||||
import {
|
import {
|
||||||
@@ -31,12 +35,12 @@ import {
|
|||||||
SendEmailCodeRequestSchema,
|
SendEmailCodeRequestSchema,
|
||||||
SetPasswordRequest,
|
SetPasswordRequest,
|
||||||
SetPasswordRequestSchema,
|
SetPasswordRequestSchema,
|
||||||
|
UserService,
|
||||||
VerifyPasskeyRegistrationRequest,
|
VerifyPasskeyRegistrationRequest,
|
||||||
VerifyU2FRegistrationRequest,
|
VerifyU2FRegistrationRequest,
|
||||||
} from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
} from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
||||||
import { unstable_cacheLife as cacheLife } from "next/cache";
|
import { unstable_cacheLife as cacheLife } from "next/cache";
|
||||||
import { systemAPIToken } from "./api";
|
import { createServiceForHost } from "./service";
|
||||||
import { ServiceInitializer } from "./service";
|
|
||||||
|
|
||||||
const useCache = process.env.DEBUG !== "true";
|
const useCache = process.env.DEBUG !== "true";
|
||||||
|
|
||||||
@@ -47,27 +51,32 @@ async function cacheWrapper<T>(callback: Promise<T>) {
|
|||||||
return callback;
|
return callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Example usage
|
// const idpService: Client<typeof IdentityProviderService> =
|
||||||
const serviceInitializer = await ServiceInitializer.getInstance();
|
// await createServiceForHost(IdentityProviderService, host);
|
||||||
|
// const orgService: Client<typeof OrganizationService> =
|
||||||
|
// await createServiceForHost(OrganizationService, host);
|
||||||
|
// const sessionService: Client<typeof SessionService> =
|
||||||
|
// await createServiceForHost(SessionService, host);
|
||||||
|
// const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
// UserService,
|
||||||
|
// host,
|
||||||
|
// );
|
||||||
|
// const oidcService: Client<typeof OIDCService> = await createServiceForHost(
|
||||||
|
// OIDCService,
|
||||||
|
// host,
|
||||||
|
// );
|
||||||
|
// const settingsService: Client<typeof SettingsService> =
|
||||||
|
// await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
export const {
|
// const systemService = async () => {
|
||||||
sessionService,
|
// const systemToken = await systemAPIToken();
|
||||||
idpService,
|
|
||||||
orgService,
|
|
||||||
settingsService,
|
|
||||||
oidcService,
|
|
||||||
userService,
|
|
||||||
} = serviceInitializer;
|
|
||||||
|
|
||||||
const systemService = async () => {
|
// const transport = createServerTransport(systemToken, {
|
||||||
const systemToken = await systemAPIToken();
|
// baseUrl: process.env.ZITADEL_API_URL,
|
||||||
|
// });
|
||||||
|
|
||||||
const transport = createServerTransport(systemToken, {
|
// return createSystemServiceClient(transport);
|
||||||
baseUrl: process.env.ZITADEL_API_URL,
|
// };
|
||||||
});
|
|
||||||
|
|
||||||
return createSystemServiceClient(transport);
|
|
||||||
};
|
|
||||||
|
|
||||||
export async function getInstanceByHost(host: string) {
|
export async function getInstanceByHost(host: string) {
|
||||||
return (await systemService())
|
return (await systemService())
|
||||||
@@ -96,7 +105,8 @@ export async function getInstanceByHost(host: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getBrandingSettings(organization?: string) {
|
export async function getBrandingSettings(organization?: string) {
|
||||||
const settingsService = serviceInitializer.getSettingsService();
|
const settingsService: Client<typeof SettingsService> =
|
||||||
|
await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
const callback = settingsService
|
const callback = settingsService
|
||||||
.getBrandingSettings({ ctx: makeReqCtx(organization) }, {})
|
.getBrandingSettings({ ctx: makeReqCtx(organization) }, {})
|
||||||
@@ -106,7 +116,8 @@ export async function getBrandingSettings(organization?: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getLoginSettings(orgId?: string) {
|
export async function getLoginSettings(orgId?: string) {
|
||||||
const settingsService = serviceInitializer.getSettingsService();
|
const settingsService: Client<typeof SettingsService> =
|
||||||
|
await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
const callback = settingsService
|
const callback = settingsService
|
||||||
.getLoginSettings({ ctx: makeReqCtx(orgId) }, {})
|
.getLoginSettings({ ctx: makeReqCtx(orgId) }, {})
|
||||||
@@ -116,7 +127,10 @@ export async function getLoginSettings(orgId?: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function listIDPLinks(userId: string) {
|
export async function listIDPLinks(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.listIDPLinks(
|
return userService.listIDPLinks(
|
||||||
{
|
{
|
||||||
@@ -127,7 +141,10 @@ export async function listIDPLinks(userId: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function addOTPEmail(userId: string) {
|
export async function addOTPEmail(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.addOTPEmail(
|
return userService.addOTPEmail(
|
||||||
{
|
{
|
||||||
@@ -138,19 +155,26 @@ export async function addOTPEmail(userId: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function addOTPSMS(userId: string) {
|
export async function addOTPSMS(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.addOTPSMS({ userId }, {});
|
return userService.addOTPSMS({ userId }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function registerTOTP(userId: string) {
|
export async function registerTOTP(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.registerTOTP({ userId }, {});
|
return userService.registerTOTP({ userId }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getGeneralSettings() {
|
export async function getGeneralSettings() {
|
||||||
const settingsService = serviceInitializer.getSettingsService();
|
const settingsService: Client<typeof SettingsService> =
|
||||||
|
await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
const callback = settingsService
|
const callback = settingsService
|
||||||
.getGeneralSettings({}, {})
|
.getGeneralSettings({}, {})
|
||||||
@@ -160,7 +184,8 @@ export async function getGeneralSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getLegalAndSupportSettings(organization?: string) {
|
export async function getLegalAndSupportSettings(organization?: string) {
|
||||||
const settingsService = serviceInitializer.getSettingsService();
|
const settingsService: Client<typeof SettingsService> =
|
||||||
|
await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
const callback = settingsService
|
const callback = settingsService
|
||||||
.getLegalAndSupportSettings({ ctx: makeReqCtx(organization) }, {})
|
.getLegalAndSupportSettings({ ctx: makeReqCtx(organization) }, {})
|
||||||
@@ -170,7 +195,8 @@ export async function getLegalAndSupportSettings(organization?: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getPasswordComplexitySettings(organization?: string) {
|
export async function getPasswordComplexitySettings(organization?: string) {
|
||||||
const settingsService = serviceInitializer.getSettingsService();
|
const settingsService: Client<typeof SettingsService> =
|
||||||
|
await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
const callback = settingsService
|
const callback = settingsService
|
||||||
.getPasswordComplexitySettings({ ctx: makeReqCtx(organization) })
|
.getPasswordComplexitySettings({ ctx: makeReqCtx(organization) })
|
||||||
@@ -184,7 +210,8 @@ export async function createSessionFromChecks(
|
|||||||
challenges: RequestChallenges | undefined,
|
challenges: RequestChallenges | undefined,
|
||||||
lifetime?: Duration,
|
lifetime?: Duration,
|
||||||
) {
|
) {
|
||||||
const sessionService = serviceInitializer.getSessionService();
|
const sessionService: Client<typeof SessionService> =
|
||||||
|
await createServiceForHost(SessionService, host);
|
||||||
|
|
||||||
return sessionService.createSession(
|
return sessionService.createSession(
|
||||||
{
|
{
|
||||||
@@ -204,7 +231,8 @@ export async function createSessionForUserIdAndIdpIntent(
|
|||||||
},
|
},
|
||||||
lifetime?: Duration,
|
lifetime?: Duration,
|
||||||
) {
|
) {
|
||||||
const sessionService = serviceInitializer.getSessionService();
|
const sessionService: Client<typeof SessionService> =
|
||||||
|
await createServiceForHost(SessionService, host);
|
||||||
|
|
||||||
return sessionService.createSession({
|
return sessionService.createSession({
|
||||||
checks: {
|
checks: {
|
||||||
@@ -227,7 +255,8 @@ export async function setSession(
|
|||||||
checks?: Checks,
|
checks?: Checks,
|
||||||
lifetime?: Duration,
|
lifetime?: Duration,
|
||||||
) {
|
) {
|
||||||
const sessionService = serviceInitializer.getSessionService();
|
const sessionService: Client<typeof SessionService> =
|
||||||
|
await createServiceForHost(SessionService, host);
|
||||||
|
|
||||||
return sessionService.setSession(
|
return sessionService.setSession(
|
||||||
{
|
{
|
||||||
@@ -249,19 +278,22 @@ export async function getSession({
|
|||||||
sessionId: string;
|
sessionId: string;
|
||||||
sessionToken: string;
|
sessionToken: string;
|
||||||
}) {
|
}) {
|
||||||
const sessionService = serviceInitializer.getSessionService();
|
const sessionService: Client<typeof SessionService> =
|
||||||
|
await createServiceForHost(SessionService, host);
|
||||||
|
|
||||||
return sessionService.getSession({ sessionId, sessionToken }, {});
|
return sessionService.getSession({ sessionId, sessionToken }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteSession(sessionId: string, sessionToken: string) {
|
export async function deleteSession(sessionId: string, sessionToken: string) {
|
||||||
const sessionService = serviceInitializer.getSessionService();
|
const sessionService: Client<typeof SessionService> =
|
||||||
|
await createServiceForHost(SessionService, host);
|
||||||
|
|
||||||
return sessionService.deleteSession({ sessionId, sessionToken }, {});
|
return sessionService.deleteSession({ sessionId, sessionToken }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function listSessions(ids: string[]) {
|
export async function listSessions(ids: string[]) {
|
||||||
const sessionService = serviceInitializer.getSessionService();
|
const sessionService: Client<typeof SessionService> =
|
||||||
|
await createServiceForHost(SessionService, host);
|
||||||
|
|
||||||
return sessionService.listSessions(
|
return sessionService.listSessions(
|
||||||
{
|
{
|
||||||
@@ -293,7 +325,10 @@ export async function addHumanUser({
|
|||||||
password,
|
password,
|
||||||
organization,
|
organization,
|
||||||
}: AddHumanUserData) {
|
}: AddHumanUserData) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.addHumanUser({
|
return userService.addHumanUser({
|
||||||
email: {
|
email: {
|
||||||
@@ -315,19 +350,28 @@ export async function addHumanUser({
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function addHuman(request: AddHumanUserRequest) {
|
export async function addHuman(request: AddHumanUserRequest) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.addHumanUser(request);
|
return userService.addHumanUser(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function verifyTOTPRegistration(code: string, userId: string) {
|
export async function verifyTOTPRegistration(code: string, userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.verifyTOTPRegistration({ code, userId }, {});
|
return userService.verifyTOTPRegistration({ code, userId }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getUserByID(userId: string) {
|
export async function getUserByID(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.getUserByID({ userId }, {});
|
return userService.getUserByID({ userId }, {});
|
||||||
}
|
}
|
||||||
@@ -336,13 +380,19 @@ export async function verifyInviteCode(
|
|||||||
userId: string,
|
userId: string,
|
||||||
verificationCode: string,
|
verificationCode: string,
|
||||||
) {
|
) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.verifyInviteCode({ userId, verificationCode }, {});
|
return userService.verifyInviteCode({ userId, verificationCode }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function resendInviteCode(userId: string) {
|
export async function resendInviteCode(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.resendInviteCode({ userId }, {});
|
return userService.resendInviteCode({ userId }, {});
|
||||||
}
|
}
|
||||||
@@ -370,7 +420,10 @@ export async function sendEmailCode(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.sendEmailCode(medium, {});
|
return userService.sendEmailCode(medium, {});
|
||||||
}
|
}
|
||||||
@@ -387,7 +440,10 @@ export async function createInviteCode(userId: string, host: string | null) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.createInviteCode(
|
return userService.createInviteCode(
|
||||||
{
|
{
|
||||||
@@ -498,7 +554,10 @@ export async function listUsers({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.listUsers({ queries: queries });
|
return userService.listUsers({ queries: queries });
|
||||||
}
|
}
|
||||||
@@ -579,7 +638,10 @@ export async function searchUsers({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
const loginNameResult = await userService.listUsers({ queries: queries });
|
const loginNameResult = await userService.listUsers({ queries: queries });
|
||||||
|
|
||||||
@@ -664,7 +726,8 @@ export async function searchUsers({
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getDefaultOrg(): Promise<Organization | null> {
|
export async function getDefaultOrg(): Promise<Organization | null> {
|
||||||
const orgService = serviceInitializer.getOrgService();
|
const orgService: Client<typeof OrganizationService> =
|
||||||
|
await createServiceForHost(OrganizationService, host);
|
||||||
|
|
||||||
return orgService
|
return orgService
|
||||||
.listOrganizations(
|
.listOrganizations(
|
||||||
@@ -684,7 +747,8 @@ export async function getDefaultOrg(): Promise<Organization | null> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getOrgsByDomain(domain: string) {
|
export async function getOrgsByDomain(domain: string) {
|
||||||
const orgService = serviceInitializer.getOrgService();
|
const orgService: Client<typeof OrganizationService> =
|
||||||
|
await createServiceForHost(OrganizationService, host);
|
||||||
|
|
||||||
return orgService.listOrganizations(
|
return orgService.listOrganizations(
|
||||||
{
|
{
|
||||||
@@ -708,7 +772,10 @@ export async function startIdentityProviderFlow({
|
|||||||
idpId: string;
|
idpId: string;
|
||||||
urls: RedirectURLsJson;
|
urls: RedirectURLsJson;
|
||||||
}) {
|
}) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.startIdentityProviderIntent({
|
return userService.startIdentityProviderIntent({
|
||||||
idpId,
|
idpId,
|
||||||
@@ -723,7 +790,10 @@ export async function retrieveIdentityProviderInformation({
|
|||||||
idpIntentId,
|
idpIntentId,
|
||||||
idpIntentToken,
|
idpIntentToken,
|
||||||
}: RetrieveIdentityProviderIntentRequest) {
|
}: RetrieveIdentityProviderIntentRequest) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.retrieveIdentityProviderIntent({
|
return userService.retrieveIdentityProviderIntent({
|
||||||
idpIntentId,
|
idpIntentId,
|
||||||
@@ -750,7 +820,10 @@ export async function createCallback(req: CreateCallbackRequest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function verifyEmail(userId: string, verificationCode: string) {
|
export async function verifyEmail(userId: string, verificationCode: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.verifyEmail(
|
return userService.verifyEmail(
|
||||||
{
|
{
|
||||||
@@ -780,13 +853,19 @@ export async function resendEmailCode(
|
|||||||
request = { ...request, verification: { case: "sendCode", value: medium } };
|
request = { ...request, verification: { case: "sendCode", value: medium } };
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.resendEmailCode(request, {});
|
return userService.resendEmailCode(request, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function retrieveIDPIntent(id: string, token: string) {
|
export function retrieveIDPIntent(id: string, token: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.retrieveIdentityProviderIntent(
|
return userService.retrieveIdentityProviderIntent(
|
||||||
{ idpIntentId: id, idpIntentToken: token },
|
{ idpIntentId: id, idpIntentToken: token },
|
||||||
@@ -795,7 +874,8 @@ export function retrieveIDPIntent(id: string, token: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getIDPByID(id: string) {
|
export function getIDPByID(id: string) {
|
||||||
const idpService = serviceInitializer.getIDPService();
|
const idpService: Client<typeof IdentityProviderService> =
|
||||||
|
await createServiceForHost(IdentityProviderService, host);
|
||||||
|
|
||||||
return idpService.getIDPByID({ id }, {}).then((resp) => resp.idp);
|
return idpService.getIDPByID({ id }, {}).then((resp) => resp.idp);
|
||||||
}
|
}
|
||||||
@@ -808,7 +888,10 @@ export function addIDPLink(
|
|||||||
},
|
},
|
||||||
userId: string,
|
userId: string,
|
||||||
) {
|
) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.addIDPLink(
|
return userService.addIDPLink(
|
||||||
{
|
{
|
||||||
@@ -846,7 +929,10 @@ export async function passwordReset(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.passwordReset(
|
return userService.passwordReset(
|
||||||
{
|
{
|
||||||
@@ -903,7 +989,10 @@ export async function setUserPassword(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.setPassword(payload, {}).catch((error) => {
|
return userService.setPassword(payload, {}).catch((error) => {
|
||||||
// throw error if failed precondition (ex. User is not yet initialized)
|
// throw error if failed precondition (ex. User is not yet initialized)
|
||||||
@@ -916,7 +1005,10 @@ export async function setUserPassword(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function setPassword(payload: SetPasswordRequest) {
|
export async function setPassword(payload: SetPasswordRequest) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.setPassword(payload, {});
|
return userService.setPassword(payload, {});
|
||||||
}
|
}
|
||||||
@@ -930,7 +1022,10 @@ export async function setPassword(payload: SetPasswordRequest) {
|
|||||||
|
|
||||||
// TODO check for token requirements!
|
// TODO check for token requirements!
|
||||||
export async function createPasskeyRegistrationLink(userId: string) {
|
export async function createPasskeyRegistrationLink(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.createPasskeyRegistrationLink({
|
return userService.createPasskeyRegistrationLink({
|
||||||
userId,
|
userId,
|
||||||
@@ -949,7 +1044,10 @@ export async function createPasskeyRegistrationLink(userId: string) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function registerU2F(userId: string, domain: string) {
|
export async function registerU2F(userId: string, domain: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.registerU2F({
|
return userService.registerU2F({
|
||||||
userId,
|
userId,
|
||||||
@@ -966,7 +1064,10 @@ export async function registerU2F(userId: string, domain: string) {
|
|||||||
export async function verifyU2FRegistration(
|
export async function verifyU2FRegistration(
|
||||||
request: VerifyU2FRegistrationRequest,
|
request: VerifyU2FRegistrationRequest,
|
||||||
) {
|
) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.verifyU2FRegistration(request, {});
|
return userService.verifyU2FRegistration(request, {});
|
||||||
}
|
}
|
||||||
@@ -979,7 +1080,8 @@ export async function getActiveIdentityProviders(
|
|||||||
if (linking_allowed) {
|
if (linking_allowed) {
|
||||||
props.linkingAllowed = linking_allowed;
|
props.linkingAllowed = linking_allowed;
|
||||||
}
|
}
|
||||||
const settingsService = serviceInitializer.getSettingsService();
|
const settingsService: Client<typeof SettingsService> =
|
||||||
|
await createServiceForHost(SettingsService, host);
|
||||||
|
|
||||||
return settingsService.getActiveIdentityProviders(props, {});
|
return settingsService.getActiveIdentityProviders(props, {});
|
||||||
}
|
}
|
||||||
@@ -992,7 +1094,10 @@ export async function getActiveIdentityProviders(
|
|||||||
export async function verifyPasskeyRegistration(
|
export async function verifyPasskeyRegistration(
|
||||||
request: VerifyPasskeyRegistrationRequest,
|
request: VerifyPasskeyRegistrationRequest,
|
||||||
) {
|
) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.verifyPasskeyRegistration(request, {});
|
return userService.verifyPasskeyRegistration(request, {});
|
||||||
}
|
}
|
||||||
@@ -1007,7 +1112,10 @@ export async function registerPasskey(
|
|||||||
code: { id: string; code: string },
|
code: { id: string; code: string },
|
||||||
domain: string,
|
domain: string,
|
||||||
) {
|
) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.registerPasskey({
|
return userService.registerPasskey({
|
||||||
userId,
|
userId,
|
||||||
@@ -1022,7 +1130,10 @@ export async function registerPasskey(
|
|||||||
* @returns the newly set email
|
* @returns the newly set email
|
||||||
*/
|
*/
|
||||||
export async function listAuthenticationMethodTypes(userId: string) {
|
export async function listAuthenticationMethodTypes(userId: string) {
|
||||||
const userService = serviceInitializer.getUserService();
|
const userService: Client<typeof UserService> = await createServiceForHost(
|
||||||
|
UserService,
|
||||||
|
host,
|
||||||
|
);
|
||||||
|
|
||||||
return userService.listAuthenticationMethodTypes({
|
return userService.listAuthenticationMethodTypes({
|
||||||
userId,
|
userId,
|
||||||
|
|||||||
Reference in New Issue
Block a user