diff --git a/src/lib/sdk/billing.ts b/src/lib/sdk/billing.ts index 96d6baee4..82e4e468c 100644 --- a/src/lib/sdk/billing.ts +++ b/src/lib/sdk/billing.ts @@ -209,6 +209,11 @@ export type RegionList = { total: number; }; +export type UserList = { + users: User[]; + total: number; +}; + export type Address = { $id: string; streetAddress: string; @@ -958,4 +963,22 @@ export class Billing { params ); } + + async getHIBP(queries: Query[] = [], search: string = ''): Promise { + const path = `/project/users-pwned`; + + const params = { + queries, + search + }; + const uri = new URL(this.client.config.endpoint + path); + return await this.client.call( + 'GET', + uri, + { + 'content-type': 'application/json' + }, + params + ); + } } diff --git a/src/routes/console/project-[project]/auth/security/+page.svelte b/src/routes/console/project-[project]/auth/security/+page.svelte index dd2a63c66..2a3855013 100644 --- a/src/routes/console/project-[project]/auth/security/+page.svelte +++ b/src/routes/console/project-[project]/auth/security/+page.svelte @@ -8,6 +8,9 @@ import UpdateSessionLength from './updateSessionLength.svelte'; import UpdateSessionsLimit from './updateSessionsLimit.svelte'; import UpdateUsersLimit from './updateUsersLimit.svelte'; + import type { PageData } from './$types'; + + export let data: PageData; @@ -18,6 +21,6 @@ {#if isCloud} - + {/if} diff --git a/src/routes/console/project-[project]/auth/security/+page.ts b/src/routes/console/project-[project]/auth/security/+page.ts new file mode 100644 index 000000000..d9b1ecb03 --- /dev/null +++ b/src/routes/console/project-[project]/auth/security/+page.ts @@ -0,0 +1,9 @@ +import { sdk } from '$lib/stores/sdk'; +import type { PageLoad } from './$types'; +import { isCloud } from '$lib/system'; + +export const load: PageLoad = async ({ url, route }) => { + return { + compromisedUsersCount: !isCloud ? 0 : (await sdk.forConsole.billing.getHIBP()).total + }; +}; diff --git a/src/routes/console/project-[project]/auth/security/updatePwned.svelte b/src/routes/console/project-[project]/auth/security/updatePwned.svelte index 1efd11837..fd720d9ee 100644 --- a/src/routes/console/project-[project]/auth/security/updatePwned.svelte +++ b/src/routes/console/project-[project]/auth/security/updatePwned.svelte @@ -7,6 +7,7 @@ import ChangeOrganizationTierCloud from '$routes/console/changeOrganizationTierCloud.svelte'; let value = false; + export let compromisedUsersCount: number; @@ -20,7 +21,7 @@ {#if isCloud && $organization.billingPlan === 'tier-0'}

- You have 234 users with compromised passwords. To view the full list of + You have {compromisedUsersCount} users with compromised passwords. To view the full list of compromised users, upgrade you plan.