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

theme.keycloak.v2.admin.resources.assets.SessionsSection-bda418f8.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"SessionsSection-bda418f8.js","sources":["../../src/sessions/RevocationModal.tsx","../../src/sessions/SessionsSection.tsx"],"sourcesContent":["import type GlobalRequestResult from \"@keycloak/keycloak-admin-client/lib/defs/globalRequestResult\";\nimport type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n  AlertVariant,\n  Button,\n  ButtonVariant,\n  Form,\n  FormGroup,\n  Modal,\n  ModalVariant,\n  TextContent,\n  ValidatedOptions,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { emailRegexPattern } from \"../util\";\nimport { useFetch } from \"../utils/useFetch\";\n\ntype RevocationModalProps = {\n  handleModalToggle: () => void;\n  save: () => void;\n};\n\nexport const RevocationModal = ({\n  handleModalToggle,\n  save,\n}: RevocationModalProps) => {\n  const { t } = useTranslation(\"sessions\");\n  const { addAlert } = useAlerts();\n\n  const { realm: realmName } = useRealm();\n  const {\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm();\n  const [realm, setRealm] = useState();\n\n  const [key, setKey] = useState(0);\n\n  const refresh = () => {\n    setKey(new Date().getTime());\n  };\n\n  useFetch(\n    () => adminClient.realms.findOne({ realm: realmName }),\n    (realm) => {\n      setRealm(realm);\n    },\n    [key]\n  );\n\n  const parseResult = (result: GlobalRequestResult, prefixKey: string) => {\n    const successCount = result.successRequests?.length || 0;\n    const failedCount = result.failedRequests?.length || 0;\n\n    if (successCount === 0 && failedCount === 0) {\n      addAlert(t(\"clients:noAdminUrlSet\"), AlertVariant.warning);\n    } else if (failedCount > 0) {\n      addAlert(\n        t(\"clients:\" + prefixKey + \"Success\", {\n          successNodes: result.successRequests,\n        }),\n        AlertVariant.success\n      );\n      addAlert(\n        t(\"clients:\" + prefixKey + \"Fail\", {\n          failedNodes: result.failedRequests,\n        }),\n        AlertVariant.danger\n      );\n    } else {\n      addAlert(\n        t(\"clients:\" + prefixKey + \"Success\", {\n          successNodes: result.successRequests,\n        }),\n        AlertVariant.success\n      );\n    }\n  };\n\n  const setToNow = async () => {\n    try {\n      await adminClient.realms.update(\n        { realm: realmName },\n        {\n          realm: realmName,\n          notBefore: Date.now() / 1000,\n        }\n      );\n\n      addAlert(t(\"notBeforeSuccess\"), AlertVariant.success);\n    } catch (error) {\n      addAlert(t(\"setToNowError\", { error }), AlertVariant.danger);\n    }\n  };\n\n  const clearNotBefore = async () => {\n    try {\n      await adminClient.realms.update(\n        { realm: realmName },\n        {\n          realm: realmName,\n          notBefore: 0,\n        }\n      );\n      addAlert(t(\"notBeforeClearedSuccess\"), AlertVariant.success);\n      refresh();\n    } catch (error) {\n      addAlert(t(\"notBeforeError\", { error }), AlertVariant.danger);\n    }\n  };\n\n  const push = async () => {\n    const result = await adminClient.realms.pushRevocation({\n      realm: realmName,\n    });\n    parseResult(result, \"notBeforePush\");\n\n    refresh();\n  };\n\n  return (\n     {\n            setToNow();\n            handleModalToggle();\n          }}\n          form=\"revocation-modal-form\"\n        >\n          {t(\"setToNow\")}\n        ,\n         {\n            clearNotBefore();\n            handleModalToggle();\n          }}\n          form=\"revocation-modal-form\"\n        >\n          {t(\"clear\")}\n        ,\n         {\n            push();\n            handleModalToggle();\n          }}\n          form=\"revocation-modal-form\"\n        >\n          {t(\"push\")}\n        ,\n         {\n            handleModalToggle();\n          }}\n        >\n          {t(\"common:cancel\")}\n        ,\n      ]}\n    >\n      \n        {t(\"revocationDescription\")}\n      \n      \n        \n          \n        \n      \n    \n  );\n};\n","import UserSessionRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/userSessionRepresentation\";\nimport {\n  DropdownItem,\n  PageSection,\n  Select,\n  SelectOption,\n} from \"@patternfly/react-core\";\nimport { FilterIcon } from \"@patternfly/react-icons\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { fetchAdminUI } from \"../context/auth/admin-ui-endpoint\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport helpUrls from \"../help-urls\";\nimport { RevocationModal } from \"./RevocationModal\";\nimport SessionsTable from \"./SessionsTable\";\nimport useToggle from \"../utils/useToggle\";\n\nimport \"./SessionsSection.css\";\n\ntype FilterType = \"ALL\" | \"REGULAR\" | \"OFFLINE\";\n\ntype SessionFilterProps = {\n  filterType: FilterType;\n  onChange: (filterType: FilterType) => void;\n};\n\nconst SessionFilter = ({ filterType, onChange }: SessionFilterProps) => {\n  const { t } = useTranslation(\"sessions\");\n\n  const [open, toggle] = useToggle();\n\n  return (\n    }\n      onSelect={(_, value) => {\n        const filter = value as FilterType;\n        onChange(filter);\n        toggle();\n      }}\n      selections={filterType}\n    >\n      \n        {t(\"sessionsType.allSessions\")}\n      \n      \n        {t(\"sessionsType.regularSSO\")}\n      \n      \n        {t(\"sessionsType.offline\")}\n      \n    \n  );\n};\n\nexport default function SessionsSection() {\n  const { t } = useTranslation(\"sessions\");\n\n  const [key, setKey] = useState(0);\n  const refresh = () => setKey(key + 1);\n  const { addError } = useAlerts();\n  const { realm } = useRealm();\n\n  const [revocationModalOpen, setRevocationModalOpen] = useState(false);\n  const [filterType, setFilterType] = useState(\"ALL\");\n  const [noSessions, setNoSessions] = useState(false);\n\n  const handleRevocationModalToggle = () => {\n    setRevocationModalOpen(!revocationModalOpen);\n  };\n\n  const loader = async (first?: number, max?: number, search?: string) => {\n    const data = await fetchAdminUI(\n      \"ui-ext/sessions\",\n      {\n        first: `${first}`,\n        max: `${max}`,\n        type: filterType,\n        search: search || \"\",\n      }\n    );\n    setNoSessions(data.length === 0);\n    return data;\n  };\n\n  const [toggleLogoutDialog, LogoutConfirm] = useConfirmDialog({\n    titleKey: \"sessions:logoutAllSessions\",\n    messageKey: \"sessions:logoutAllDescription\",\n    continueButtonLabel: \"common:confirm\",\n    onConfirm: async () => {\n      try {\n        await adminClient.realms.logoutAll({ realm });\n        refresh();\n      } catch (error) {\n        addError(\"sessions:logoutAllSessionsError\", error);\n      }\n    },\n  });\n\n  const dropdownItems = [\n     handleRevocationModalToggle()}\n    >\n      {t(\"revocation\")}\n    ,\n    \n      {t(\"signOutAllActiveSessions\")}\n    ,\n  ];\n\n  return (\n    <>\n      \n      \n      \n        {revocationModalOpen && (\n           {\n              handleRevocationModalToggle();\n            }}\n          />\n        )}\n         {\n                setFilterType(type);\n                refresh();\n              }}\n            />\n          }\n        />\n      \n    \n  );\n}\n"],"names":["RevocationModal","handleModalToggle","save","t","useTranslation","addAlert","useAlerts","realmName","useRealm","register","handleSubmit","errors","useForm","realm","setRealm","useState","key","setKey","refresh","useFetch","adminClient","parseResult","result","prefixKey","successCount","failedCount","AlertVariant","setToNow","error","clearNotBefore","push","jsxs","Modal","ModalVariant","jsx","Button","ButtonVariant","TextContent","Form","FormGroup","ValidatedOptions","KeycloakTextInput","emailRegexPattern","SessionFilter","filterType","onChange","open","toggle","useToggle","Select","FilterIcon","_","value","SelectOption","SessionsSection","addError","revocationModalOpen","setRevocationModalOpen","setFilterType","noSessions","setNoSessions","handleRevocationModalToggle","loader","first","max","search","data","fetchAdminUI","toggleLogoutDialog","LogoutConfirm","useConfirmDialog","dropdownItems","DropdownItem","Fragment","ViewHeader","helpUrls","PageSection","SessionsTable","type"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy