All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.EditClientScope-e296b683.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"EditClientScope-e296b683.js","sources":["../../src/client-scopes/EditClientScope.tsx"],"sourcesContent":["import ClientScopeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientScopeRepresentation\";\nimport type ProtocolMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation\";\nimport type { RoleMappingPayload } from \"@keycloak/keycloak-admin-client/lib/defs/roleRepresentation\";\nimport type { ProtocolMapperTypeRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation\";\nimport {\n  Alert,\n  AlertVariant,\n  ButtonVariant,\n  DropdownItem,\n  PageSection,\n  Tab,\n  TabTitleText,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useHelp } from \"ui-shared\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport {\n  AllClientScopes,\n  ClientScope,\n  ClientScopeDefaultOptionalType,\n  changeScope,\n} from \"../components/client-scope/ClientScopeTypes\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport { RoleMapping, Row } from \"../components/role-mapping/RoleMapping\";\nimport {\n  RoutableTabs,\n  useRoutableTab,\n} from \"../components/routable-tabs/RoutableTabs\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { convertFormValuesToObject } from \"../util\";\nimport { useFetch } from \"../utils/useFetch\";\nimport { useParams } from \"../utils/useParams\";\nimport { MapperList } from \"./details/MapperList\";\nimport { ScopeForm } from \"./details/ScopeForm\";\nimport {\n  ClientScopeParams,\n  ClientScopeTab,\n  toClientScope,\n} from \"./routes/ClientScope\";\nimport { toMapper } from \"./routes/Mapper\";\nimport { toClientScopes } from \"./routes/ClientScopes\";\n\nexport default function EditClientScope() {\n  const { t } = useTranslation(\"client-scopes\");\n  const navigate = useNavigate();\n  const { realm } = useRealm();\n  const { id } = useParams();\n  const { addAlert, addError } = useAlerts();\n  const { enabled } = useHelp();\n  const [clientScope, setClientScope] =\n    useState();\n  const [key, setKey] = useState(0);\n  const refresh = () => setKey(key + 1);\n\n  useFetch(\n    async () => {\n      const clientScope = await adminClient.clientScopes.findOne({ id });\n\n      if (!clientScope) {\n        throw new Error(t(\"common:notFound\"));\n      }\n\n      return {\n        ...clientScope,\n        type: await determineScopeType(clientScope),\n      };\n    },\n    (clientScope) => {\n      setClientScope(clientScope);\n    },\n    [key, id]\n  );\n\n  async function determineScopeType(clientScope: ClientScopeRepresentation) {\n    const defaultScopes =\n      await adminClient.clientScopes.listDefaultClientScopes();\n    const hasDefaultScope = defaultScopes.find(\n      (defaultScope) => defaultScope.name === clientScope.name\n    );\n\n    if (hasDefaultScope) {\n      return ClientScope.default;\n    }\n\n    const optionalScopes =\n      await adminClient.clientScopes.listDefaultOptionalClientScopes();\n    const hasOptionalScope = optionalScopes.find(\n      (optionalScope) => optionalScope.name === clientScope.name\n    );\n\n    return hasOptionalScope ? ClientScope.optional : AllClientScopes.none;\n  }\n\n  const useTab = (tab: ClientScopeTab) =>\n    useRoutableTab(\n      toClientScope({\n        realm,\n        id,\n        tab,\n      })\n    );\n\n  const settingsTab = useTab(\"settings\");\n  const mappersTab = useTab(\"mappers\");\n  const scopeTab = useTab(\"scope\");\n\n  const onSubmit = async (formData: ClientScopeDefaultOptionalType) => {\n    const clientScope = convertFormValuesToObject({\n      ...formData,\n      name: formData.name?.trim().replace(/ /g, \"_\"),\n    });\n\n    try {\n      await adminClient.clientScopes.update({ id }, clientScope);\n      await changeScope({ ...clientScope, id }, clientScope.type);\n\n      addAlert(t(\"updateSuccess\"), AlertVariant.success);\n    } catch (error) {\n      addError(\"client-scopes:updateError\", error);\n    }\n  };\n\n  const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n    titleKey: t(\"deleteClientScope\", {\n      count: 1,\n      name: clientScope?.name,\n    }),\n    messageKey: \"client-scopes:deleteConfirm\",\n    continueButtonLabel: \"common:delete\",\n    continueButtonVariant: ButtonVariant.danger,\n    onConfirm: async () => {\n      try {\n        await adminClient.clientScopes.del({ id });\n        addAlert(t(\"deletedSuccess\"), AlertVariant.success);\n        navigate(toClientScopes({ realm }));\n      } catch (error) {\n        addError(\"client-scopes:deleteError\", error);\n      }\n    },\n  });\n\n  const assignRoles = async (rows: Row[]) => {\n    try {\n      const realmRoles = rows\n        .filter((row) => row.client === undefined)\n        .map((row) => row.role as RoleMappingPayload)\n        .flat();\n      await adminClient.clientScopes.addRealmScopeMappings(\n        {\n          id,\n        },\n        realmRoles\n      );\n      await Promise.all(\n        rows\n          .filter((row) => row.client !== undefined)\n          .map((row) =>\n            adminClient.clientScopes.addClientScopeMappings(\n              {\n                id,\n                client: row.client!.id!,\n              },\n              [row.role as RoleMappingPayload]\n            )\n          )\n      );\n      addAlert(t(\"roleMappingUpdatedSuccess\"), AlertVariant.success);\n    } catch (error) {\n      addError(\"client-scopes:roleMappingUpdatedError\", error);\n    }\n  };\n\n  const addMappers = async (\n    mappers: ProtocolMapperTypeRepresentation | ProtocolMapperRepresentation[]\n  ): Promise => {\n    if (!Array.isArray(mappers)) {\n      const mapper = mappers as ProtocolMapperTypeRepresentation;\n      navigate(\n        toMapper({\n          realm,\n          id: clientScope!.id!,\n          mapperId: mapper.id!,\n        })\n      );\n    } else {\n      try {\n        await adminClient.clientScopes.addMultipleProtocolMappers(\n          { id: clientScope!.id! },\n          mappers as ProtocolMapperRepresentation[]\n        );\n        refresh();\n        addAlert(t(\"common:mappingCreatedSuccess\"), AlertVariant.success);\n      } catch (error) {\n        addError(\"common:mappingCreatedError\", error);\n      }\n    }\n  };\n\n  const onDelete = async (mapper: ProtocolMapperRepresentation) => {\n    try {\n      await adminClient.clientScopes.delProtocolMapper({\n        id: clientScope!.id!,\n        mapperId: mapper.id!,\n      });\n      addAlert(t(\"common:mappingDeletedSuccess\"), AlertVariant.success);\n      refresh();\n    } catch (error) {\n      addError(\"common:mappingDeletedError\", error);\n    }\n    return true;\n  };\n\n  if (!clientScope) {\n    return ;\n  }\n\n  return (\n    <>\n      \n      \n            {t(\"common:delete\")}\n          ,\n        ]}\n        badges={[{ text: clientScope.protocol }]}\n        divider={false}\n      />\n\n      \n        \n          {t(\"common:settings\")}}\n            {...settingsTab}\n          >\n            \n              \n            \n          \n          {t(\"common:mappers\")}}\n            {...mappersTab}\n          >\n            \n                toMapper({ realm, id: clientScope.id!, mapperId: id! })\n              }\n            />\n          \n          {t(\"scope\")}}\n            {...scopeTab}\n          >\n            {enabled && (\n              \n                \n              \n            )}\n            \n          \n        \n      \n    \n  );\n}\n"],"names":["EditClientScope","t","useTranslation","navigate","useNavigate","realm","useRealm","id","useParams","addAlert","addError","useAlerts","enabled","useHelp","clientScope","setClientScope","useState","key","setKey","refresh","useFetch","adminClient","determineScopeType","defaultScope","ClientScope","optionalScope","AllClientScopes","useTab","tab","useRoutableTab","toClientScope","settingsTab","mappersTab","scopeTab","onSubmit","formData","convertFormValuesToObject","changeScope","AlertVariant","error","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","toClientScopes","assignRoles","rows","realmRoles","row","addMappers","mappers","mapper","toMapper","onDelete","jsxs","Fragment","jsx","ViewHeader","DropdownItem","PageSection","RoutableTabs","Tab","TabTitleText","ScopeForm","MapperList","Alert","RoleMapping","KeycloakSpinner"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy