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

75 lines (65 loc) 2.14 kB
/* eslint-disable */ // @ts-nocheck import { useServerInfo } from "../context/server-info/ServerInfoProvider"; import { useAccess } from "../context/access/Access"; export enum Feature { AccountV3 = "ACCOUNT_V3", AdminFineGrainedAuthz = "ADMIN_FINE_GRAINED_AUTHZ", AdminFineGrainedAuthzV2 = "ADMIN_FINE_GRAINED_AUTHZ_V2", ClientPolicies = "CLIENT_POLICIES", Kerberos = "KERBEROS", ParameterizedScopes = "PARAMETERIZED_SCOPES", DPoP = "DPOP", DeviceFlow = "DEVICE_FLOW", TransientUsers = "TRANSIENT_USERS", ClientTypes = "CLIENT_TYPES", DeclarativeUI = "DECLARATIVE_UI", Organizations = "ORGANIZATION", OpenId4VCI = "OID4VC_VCI", QuickTheme = "QUICK_THEME", StandardTokenExchangeV2 = "TOKEN_EXCHANGE_STANDARD_V2", JWTAuthorizationGrant = "JWT_AUTHORIZATION_GRANT", Passkeys = "PASSKEYS", ClientAuthFederated = "CLIENT_AUTH_FEDERATED", Workflows = "WORKFLOWS", StepUpAuthenticationSaml = "STEP_UP_AUTHENTICATION_SAML", Ssf = "SSF", ScimApi = "SCIM_API", IdentityBrokeringAPIV1 = "IDENTITY_BROKERING_API_V1", IdentityBrokeringAPIV2 = "IDENTITY_BROKERING_API_V2", } export const unversionedName = (name: string) => name.replace(/_V\d+$/, ""); export default function useIsFeatureEnabled() { const { features } = useServerInfo(); const { hasAccess } = useAccess(); const hasFeatureAccess = (feature: Feature) => { switch (feature) { case Feature.Organizations: return hasAccess(({ hasAny }) => hasAny("manage-realm", "query-organizations"), ); default: return true; } }; return function isFeatureEnabled(feature: Feature) { if (!features) { return false; } return features .filter((f) => f.enabled && hasFeatureAccess(f.name as Feature)) .map((f) => f.name) .includes(feature); }; } export function useIsFeatureDisabled() { const { features } = useServerInfo(); return function isFeatureDisabled(feature: Feature) { if (!features) { return true; } return !features.some( (f) => f.enabled && unversionedName(f.name!) === unversionedName(feature), ); }; }