feat add some for users in iam
This commit is contained in:
+13
-2
@@ -83506,7 +83506,7 @@ var require_iam_service = __commonJS({
|
|||||||
body.tenant_slug = tenantSlug;
|
body.tenant_slug = tenantSlug;
|
||||||
if (clientIp)
|
if (clientIp)
|
||||||
body.client_ip = clientIp;
|
body.client_ip = clientIp;
|
||||||
const returnTo = (0, env_12.envOrNull)("IAM_ADMIN_BROWSER_RETURN_URL") || (0, env_12.envOrNull)("IAM_BROWSER_RETURN_URL");
|
const returnTo = this.adminBrowserReturnUrl();
|
||||||
if (returnTo)
|
if (returnTo)
|
||||||
body.return_to = returnTo;
|
body.return_to = returnTo;
|
||||||
const timeout = Number((0, env_12.envOr)("IAM_HTTP_TIMEOUT_MS", "8000"));
|
const timeout = Number((0, env_12.envOr)("IAM_HTTP_TIMEOUT_MS", "8000"));
|
||||||
@@ -83579,7 +83579,7 @@ var require_iam_service = __commonJS({
|
|||||||
body.client_ip = clientIp;
|
body.client_ip = clientIp;
|
||||||
if (factorReference)
|
if (factorReference)
|
||||||
body.factor_reference = factorReference;
|
body.factor_reference = factorReference;
|
||||||
const returnTo = (0, env_12.envOrNull)("IAM_BROWSER_RETURN_URL");
|
const returnTo = this.customerBrowserReturnUrl();
|
||||||
if (returnTo)
|
if (returnTo)
|
||||||
body.return_to = returnTo;
|
body.return_to = returnTo;
|
||||||
const timeout = Number((0, env_12.envOr)("IAM_HTTP_TIMEOUT_MS", "8000"));
|
const timeout = Number((0, env_12.envOr)("IAM_HTTP_TIMEOUT_MS", "8000"));
|
||||||
@@ -83620,6 +83620,17 @@ var require_iam_service = __commonJS({
|
|||||||
this.logger.warn(`identity service returned ${response.status} for an OTP attestation`);
|
this.logger.warn(`identity service returned ${response.status} for an OTP attestation`);
|
||||||
throw new IamUnavailableError(`identity service returned ${response.status}`);
|
throw new IamUnavailableError(`identity service returned ${response.status}`);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* مقصد بلیت مرورگر. خروج از فهرست گستردهتری استفاده میکند؛ اگر ورود فقط
|
||||||
|
* `IAM_BROWSER_RETURN_URL` را ببیند و آن خالی باشد، کوکی مشترک گذاشته نمیشود
|
||||||
|
* و فقط خروج به IAM میرود.
|
||||||
|
*/
|
||||||
|
customerBrowserReturnUrl() {
|
||||||
|
return (0, env_12.envOrNull)("IAM_BROWSER_RETURN_URL") || (0, env_12.envOrNull)("IAM_POST_LOGOUT_REDIRECT_URI") || (0, env_12.envList)("IAM_ALLOWED_RETURN_URLS")[0] || null;
|
||||||
|
}
|
||||||
|
adminBrowserReturnUrl() {
|
||||||
|
return (0, env_12.envOrNull)("IAM_ADMIN_BROWSER_RETURN_URL") || (0, env_12.envOrNull)("IAM_ADMIN_POST_LOGOUT_REDIRECT_URI") || (0, env_12.envList)("IAM_ADMIN_ALLOWED_RETURN_URLS")[0] || this.customerBrowserReturnUrl();
|
||||||
|
}
|
||||||
browserBootstrapUrl(ticket) {
|
browserBootstrapUrl(ticket) {
|
||||||
if (!ticket || !this.issuer)
|
if (!ticket || !this.issuer)
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Injectable, Logger } from '@nestjs/common';
|
import { Injectable, Logger } from '@nestjs/common';
|
||||||
import { envOr, envOrNull } from '../../common/env';
|
import { envList, envOr, envOrNull } from '../../common/env';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Credential delegation to the central identity service (Central IAM).
|
* Credential delegation to the central identity service (Central IAM).
|
||||||
@@ -115,7 +115,7 @@ export class IamService {
|
|||||||
if (tenantId) body.tenant_id = tenantId;
|
if (tenantId) body.tenant_id = tenantId;
|
||||||
else if (tenantSlug) body.tenant_slug = tenantSlug;
|
else if (tenantSlug) body.tenant_slug = tenantSlug;
|
||||||
if (clientIp) body.client_ip = clientIp;
|
if (clientIp) body.client_ip = clientIp;
|
||||||
const returnTo = envOrNull('IAM_ADMIN_BROWSER_RETURN_URL') || envOrNull('IAM_BROWSER_RETURN_URL');
|
const returnTo = this.adminBrowserReturnUrl();
|
||||||
if (returnTo) body.return_to = returnTo;
|
if (returnTo) body.return_to = returnTo;
|
||||||
|
|
||||||
const timeout = Number(envOr('IAM_HTTP_TIMEOUT_MS', '8000'));
|
const timeout = Number(envOr('IAM_HTTP_TIMEOUT_MS', '8000'));
|
||||||
@@ -203,7 +203,7 @@ export class IamService {
|
|||||||
else if (tenantSlug) body.tenant_slug = tenantSlug;
|
else if (tenantSlug) body.tenant_slug = tenantSlug;
|
||||||
if (clientIp) body.client_ip = clientIp;
|
if (clientIp) body.client_ip = clientIp;
|
||||||
if (factorReference) body.factor_reference = factorReference;
|
if (factorReference) body.factor_reference = factorReference;
|
||||||
const returnTo = envOrNull('IAM_BROWSER_RETURN_URL');
|
const returnTo = this.customerBrowserReturnUrl();
|
||||||
if (returnTo) body.return_to = returnTo;
|
if (returnTo) body.return_to = returnTo;
|
||||||
|
|
||||||
const timeout = Number(envOr('IAM_HTTP_TIMEOUT_MS', '8000'));
|
const timeout = Number(envOr('IAM_HTTP_TIMEOUT_MS', '8000'));
|
||||||
@@ -254,6 +254,29 @@ export class IamService {
|
|||||||
throw new IamUnavailableError(`identity service returned ${response.status}`);
|
throw new IamUnavailableError(`identity service returned ${response.status}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* مقصد بلیت مرورگر. خروج از فهرست گستردهتری استفاده میکند؛ اگر ورود فقط
|
||||||
|
* `IAM_BROWSER_RETURN_URL` را ببیند و آن خالی باشد، کوکی مشترک گذاشته نمیشود
|
||||||
|
* و فقط خروج به IAM میرود.
|
||||||
|
*/
|
||||||
|
private customerBrowserReturnUrl(): string | null {
|
||||||
|
return (
|
||||||
|
envOrNull('IAM_BROWSER_RETURN_URL') ||
|
||||||
|
envOrNull('IAM_POST_LOGOUT_REDIRECT_URI') ||
|
||||||
|
envList('IAM_ALLOWED_RETURN_URLS')[0] ||
|
||||||
|
null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private adminBrowserReturnUrl(): string | null {
|
||||||
|
return (
|
||||||
|
envOrNull('IAM_ADMIN_BROWSER_RETURN_URL') ||
|
||||||
|
envOrNull('IAM_ADMIN_POST_LOGOUT_REDIRECT_URI') ||
|
||||||
|
envList('IAM_ADMIN_ALLOWED_RETURN_URLS')[0] ||
|
||||||
|
this.customerBrowserReturnUrl()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
browserBootstrapUrl(ticket: string | null | undefined): string | null {
|
browserBootstrapUrl(ticket: string | null | undefined): string | null {
|
||||||
if (!ticket || !this.issuer) return null;
|
if (!ticket || !this.issuer) return null;
|
||||||
return `${this.issuer}/auth/bootstrap?ticket=${encodeURIComponent(ticket)}`;
|
return `${this.issuer}/auth/bootstrap?ticket=${encodeURIComponent(ticket)}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user