UNPKG

@keycloakify/keycloak-admin-ui

Version:

<p align="center"> <img src="https://github.com/user-attachments/assets/a6aaebbd-8f59-474d-9827-c282f4527aca"> </p> <p align="center"> <i>Repackaged Keycloak Admin UI</i> <br> <br> <a href="https://github.com/keycloakify/keycloak-adm

93 lines (77 loc) 2.17 kB
/* eslint-disable */ // @ts-nocheck import type UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation"; import { fetchAdminUI } from "../../context/auth/admin-ui-endpoint"; import KeycloakAdminClient from "@keycloak/keycloak-admin-client"; type IDQuery = { id: string; type: string; }; type PaginatingQuery = IDQuery & { first: number; max: number; search?: string; }; type EffectiveClientRolesQuery = IDQuery; type Query = Partial<Omit<PaginatingQuery, "adminClient">> & { endpoint: string; }; type ClientRole = { id: string; role: string; description?: string; client: string; clientId: string; }; const fetchEndpoint = async ( adminClient: KeycloakAdminClient, { id, type, first, max, search, endpoint }: Query, ): Promise<any> => fetchAdminUI(adminClient, `/ui-ext/${endpoint}/${type}/${id}`, { first: (first || 0).toString(), max: (max || 10).toString(), search: search || "", }); export const getAvailableClientRoles = ( adminClient: KeycloakAdminClient, query: PaginatingQuery, ): Promise<ClientRole[]> => fetchEndpoint(adminClient, { ...query, endpoint: "available-roles" }); export const getEffectiveClientRoles = ( adminClient: KeycloakAdminClient, query: EffectiveClientRolesQuery, ): Promise<ClientRole[]> => fetchEndpoint(adminClient, { ...query, endpoint: "effective-roles" }); type UserQuery = { lastName?: string; firstName?: string; email?: string; username?: string; emailVerified?: boolean; idpAlias?: string; idpUserId?: string; enabled?: boolean; briefRepresentation?: boolean; exact?: boolean; q?: string; }; export type BruteUser = UserRepresentation & { bruteForceStatus?: Record<string, object>; }; export const findUsers = ( adminClient: KeycloakAdminClient, query: UserQuery, ): Promise<BruteUser[]> => fetchAdminUI( adminClient, "ui-ext/brute-force-user", query as Record<string, string>, ); export const fetchUsedBy = ( adminClient: KeycloakAdminClient, query: PaginatingQuery, ): Promise<string[]> => fetchEndpoint(adminClient, { ...query, endpoint: "authentication-management", });