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

web-interface.assets.07ba022f-8890.d1c488bd5ef81d2349c6.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"07ba022f-8890.d1c488bd5ef81d2349c6.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/PaginatedItemOverview/index.tsx","webpack://graylog-web-interface/./src/components/permissions/RolesSelector.tsx","webpack://graylog-web-interface/./src/components/common/EntityFilters/FiltersForQueryParams.ts","webpack://graylog-web-interface/./src/components/streams/hooks/useStreams.ts","webpack://graylog-web-interface/./src/components/users/PermissionsUpdateInfo.tsx","webpack://graylog-web-interface/./src/components/users/RolesQueryHelp.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/EmailFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/FirstNameFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/LastNameFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/PasswordFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/ServiceAccountFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/timeoutConstants.ts","webpack://graylog-web-interface/./src/components/users/TimeoutUnitSelect.tsx","webpack://graylog-web-interface/./src/components/users/TimeoutInput.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/TimeoutFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/UserCreate/TimezoneFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/navigation/UserActionLinks.tsx","webpack://graylog-web-interface/./src/logic/telemetry/TelemetrySettingsConfig.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/ReadOnlyWarning.tsx","webpack://graylog-web-interface/./src/components/users/StartpageFormGroup.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/SettingsSection.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/PasswordSection.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/ProfileUpdateInfo.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/ProfileSection.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/PreferencesSection.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/RolesSection.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/TeamsSection.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/UserEdit.tsx","webpack://graylog-web-interface/./src/components/users/UserEdit/index.ts","webpack://graylog-web-interface/./src/pages/UserEditPage.tsx","webpack://graylog-web-interface/./src/routing/withParams.tsx"],"sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type {\n  PaginatedListType,\n  DescriptiveItem,\n  ResultsWrapperComponentProps,\n  OverrideItemComponentProps,\n} from './PaginatedItemOverview';\nimport PaginatedItemOverview, {\n  DEFAULT_PAGINATION,\n} from './PaginatedItemOverview';\n\nexport type {\n  PaginatedListType,\n  DescriptiveItem,\n  ResultsWrapperComponentProps,\n  OverrideItemComponentProps,\n};\n\nexport { DEFAULT_PAGINATION };\n\nexport default PaginatedItemOverview;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport * as Immutable from 'immutable';\nimport compact from 'lodash/compact';\nimport PropTypes from 'prop-types';\nimport { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nimport type { PaginatedRoles } from 'actions/roles/AuthzRolesActions';\nimport AuthzRolesDomain from 'domainActions/roles/AuthzRolesDomain';\nimport type Role from 'logic/roles/Role';\nimport { Button } from 'components/bootstrap';\nimport { Select, Spinner, ErrorAlert } from 'components/common';\n\ntype Props = {\n  assignedRolesIds: Immutable.Set,\n  identifier: (role: Role) => string,\n  onSubmit: (role: Immutable.Set) => Promise,\n  submitOnSelect?: boolean,\n};\n\nconst SubmitButton = styled(Button)`\n  margin-left: 15px;\n`;\n\nconst FormElements = styled.div`\n  display: flex;\n`;\n\nconst RoleSelectOption = styled.div`\n  display: flex;\n  align-items: center;\n`;\n\nconst StyledSelect = styled(Select)`\n  flex: 1;\n`;\n\nconst _renderRoleOption = ({ label }: { label: string }) => (\n  {label}\n);\n\nconst _options = (roles, assignedRolesIds, identifier) => roles\n  .filter((role) => !assignedRolesIds.includes(identifier(role)))\n  .toArray()\n  .map((r) => ({ label: r.name, value: r.name, role: r }));\n\nconst _assignRole = (selectedRoleNames, roles, onSubmit, setselectedRoleNames, setIsSubmitting, setError) => {\n  if (!selectedRoleNames) {\n    return;\n  }\n\n  const selectedRoleNameList = selectedRoleNames.split(',');\n\n  const selectedRoles = Immutable.Set(compact(selectedRoleNameList.map((selection) => roles.find((r) => r.name === selection))));\n\n  if (selectedRoles.size <= 0) {\n    setError(`Role assignment failed, because the roles ${selectedRoleNames ?? '(undefined)'} does not exist`);\n\n    return;\n  }\n\n  setError();\n  setIsSubmitting(true);\n\n  onSubmit(selectedRoles).then(() => {\n    setselectedRoleNames();\n    setIsSubmitting(false);\n  });\n};\n\nconst _loadRoles = (setPaginatedRoles) => {\n  const getUnlimited = { page: 1, perPage: 0, query: '' };\n\n  AuthzRolesDomain.loadRolesPaginated(getUnlimited).then(setPaginatedRoles);\n};\n\nconst RolesSelector = ({ assignedRolesIds, onSubmit, identifier, submitOnSelect }: Props) => {\n  const [paginatedRoles, setPaginatedRoles] = useState();\n  const [selectedRoleNames, setselectedRoleNames] = useState();\n  const [isSubmitting, setIsSubmitting] = useState(false);\n  const [error, setError] = useState();\n\n  useEffect(() => _loadRoles(setPaginatedRoles), []);\n\n  const onChange = (items) => {\n    const newselectedRoleNameList = items;\n\n    if (submitOnSelect) {\n      _assignRole(newselectedRoleNameList, paginatedRoles.list, onSubmit, setselectedRoleNames, setIsSubmitting, setError);\n    }\n\n    setselectedRoleNames(items);\n  };\n\n  if (!paginatedRoles) {\n    return ;\n  }\n\n  const _onSubmit = () => _assignRole(selectedRoleNames, paginatedRoles.list, onSubmit, setselectedRoleNames, setIsSubmitting, setError);\n  const options = _options(paginatedRoles.list, assignedRolesIds, identifier);\n\n  return (\n    
\n \n \n {!submitOnSelect && (\n \n Assign Role\n \n )}\n\n \n \n {error}\n \n
\n );\n};\n\nRolesSelector.defaultProps = {\n identifier: (role) => role.id,\n submitOnSelect: false,\n};\n\nRolesSelector.propTypes = {\n identifier: PropTypes.func,\n onSubmit: PropTypes.func.isRequired,\n submitOnSelect: PropTypes.bool,\n};\n\nexport default RolesSelector;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { UrlQueryFilters } from 'components/common/EntityFilters/types';\n\n// Transform filters, so they can be used as URL query params, for example for the PaginationURL helper.\nconst FiltersForQueryParams = (filters: UrlQueryFilters) => {\n if (!filters) {\n return undefined;\n }\n\n return filters.entrySeq().flatMap(([attributeId, filterValues]) => (\n filterValues.map((value) => `${attributeId}:${value}`)\n )).toArray();\n};\n\nexport default FiltersForQueryParams;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport type { SearchParams, Attribute } from 'stores/PaginationTypes';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport StreamsStore from 'stores/streams/StreamsStore';\nimport FiltersForQueryParams from 'components/common/EntityFilters/FiltersForQueryParams';\n\nconst INITIAL_DATA = {\n pagination: { total: 0 },\n elements: [],\n attributes: [],\n};\n\ntype Options = {\n enabled: boolean,\n}\n\nconst useStreams = (searchParams: SearchParams, { enabled }: Options = { enabled: true }): {\n data: {\n elements: Array,\n pagination: { total: number }\n attributes: Array\n },\n refetch: () => void,\n isInitialLoading: boolean,\n} => {\n const { data, refetch, isInitialLoading } = useQuery(\n ['streams', 'overview', searchParams],\n () => StreamsStore.searchPaginated(\n searchParams.page,\n searchParams.pageSize,\n searchParams.query,\n {\n sort: searchParams?.sort.attributeId,\n order: searchParams?.sort.direction,\n filters: FiltersForQueryParams(searchParams.filters),\n },\n ),\n {\n onError: (errorThrown) => {\n UserNotification.error(`Loading streams failed with status: ${errorThrown}`,\n 'Could not load streams');\n },\n keepPreviousData: true,\n enabled,\n },\n );\n\n return ({\n data: data ?? INITIAL_DATA,\n refetch,\n isInitialLoading,\n });\n};\n\nexport default useStreams;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport DocsHelper from 'util/DocsHelper';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport { Col, Row, Alert } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nconst PermissionsUpdateInfo = () => (\n \n \n \n With Graylog 4.0, we've updated the permissions system. Granting permissions for an entity like streams and dashboards is no longer part of the user edit page.\n It can now be configured using the Share button of an entity. You can find the button e.g. on the entities overview page. Learn more in the .\n \n \n \n);\n\nexport default PermissionsUpdateInfo;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { OverlayTrigger, Icon } from 'components/common';\nimport { Popover, Table, Button } from 'components/bootstrap';\n\nconst rolesQueryHelpPopover = (\n \n

Available search fields

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldDescription
nameRole name
descriptionDescription of the Role
\n

Examples

\n

\n Find roles with a description containing creator:
\n description:creator
\n

\n
\n);\n\nconst RolesQueryHelp = () => (\n \n \n \n);\n\nexport default RolesQueryHelp;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { FormikFormGroup } from 'components/common';\n\nconst EmailFormGroup = () => (\n \n);\n\nexport default EmailFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { FormikFormGroup } from 'components/common';\n\nconst FirstNameFormGroup = () => (\n \n);\n\nexport default FirstNameFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { FormikFormGroup } from 'components/common';\n\nconst LastNameFormGroup = () => (\n \n);\n\nexport default LastNameFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { FormikInput } from 'components/common';\nimport { Row, Col, Input } from 'components/bootstrap';\n\nexport const PASSWORD_MIN_LENGTH = 6;\n\nexport const validatePasswords = (errors: { [name: string]: string }, password: string, passwordRepeat: string) => {\n const newErrors = { ...errors };\n\n if (password && password.length < PASSWORD_MIN_LENGTH) {\n newErrors.password = `Password must be at least ${PASSWORD_MIN_LENGTH} characters long`;\n }\n\n if (password && passwordRepeat) {\n const passwordMatches = password === passwordRepeat;\n\n if (!passwordMatches) {\n newErrors.password_repeat = 'Passwords do not match';\n }\n }\n\n return newErrors;\n};\n\ntype Props = {};\n\n// eslint-disable-next-line no-empty-pattern\nconst PasswordFormGroup = ({}: Props) => (\n \n \n \n \n \n \n \n \n \n \n);\n\nPasswordFormGroup.defaultProps = {\n passwordRef: undefined,\n passwordRepeatRef: undefined,\n};\n\nexport default PasswordFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { Field } from 'formik';\n\nimport { Input, BootstrapModalConfirm } from 'components/bootstrap';\nimport { getValueFromInput } from 'util/FormsUtils';\n\nconst ServiceAccountFormGroup = () => {\n const [showModal, setShowModal] = useState(false);\n\n return (\n \n {({ field: { name, value, onChange } }) => {\n const onValueChange = (newValue) => {\n const serviceAccountNewValue = getValueFromInput(newValue.target);\n\n if (serviceAccountNewValue) {\n setShowModal(true);\n } else {\n onChange(newValue);\n }\n };\n\n const handleCheckServiceAccount = () => {\n onChange({ target: { name, value: true } });\n setShowModal(false);\n };\n\n const handleCancel = () => {\n onChange({ target: { name, value: false } });\n setShowModal(false);\n };\n\n return (\n <>\n \n onValueChange(newValue)} />\n \n \n Changing this user to a Service Account prevents the user from logging into the web interface and editing their settings. (e.g., API tokens) Do you wish to proceed?\n \n \n );\n }}\n\n \n );\n};\n\nexport default ServiceAccountFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nexport const MS_DAY = 24 * 60 * 60 * 1000;\nexport const MS_HOUR = 60 * 60 * 1000;\nexport const MS_MINUTE = 60 * 1000;\nexport const MS_SECOND = 1000;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Select } from 'components/common';\n\nimport { MS_DAY, MS_HOUR, MS_MINUTE, MS_SECOND } from './timeoutConstants';\n\nconst TimeoutSelect = styled(Select)`\n width: 150px;\n`;\n\nconst OPTIONS = [\n { value: `${MS_SECOND}`, label: 'Seconds' },\n { value: `${MS_MINUTE}`, label: 'Minutes' },\n { value: `${MS_HOUR}`, label: 'Hours' },\n { value: `${MS_DAY}`, label: 'Days' },\n];\n\nconst TimeoutUnitSelect = (props) => (\n \n);\n\nexport default TimeoutUnitSelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Row, Col, HelpBlock, Input, Alert } from 'components/bootstrap';\nimport TimeoutUnitSelect from 'components/users/TimeoutUnitSelect';\n\nimport { MS_DAY, MS_HOUR, MS_MINUTE, MS_SECOND } from './timeoutConstants';\n\ntype Props = {\n value: number,\n onChange: (value: number) => void;\n};\n\nconst _estimateUnit = (value: number): number => {\n if (value === 0) {\n return MS_SECOND;\n }\n\n if (value % MS_DAY === 0) {\n return MS_DAY;\n }\n\n if (value % MS_HOUR === 0) {\n return MS_HOUR;\n }\n\n if (value % MS_MINUTE === 0) {\n return MS_MINUTE;\n }\n\n return MS_SECOND;\n};\n\nconst TimeoutInput = ({ value: propsValue, onChange }: Props) => {\n const [sessionTimeoutNever, setSessionTimeoutNever] = useState(propsValue === -1);\n const [unit, setUnit] = useState(_estimateUnit(propsValue));\n const [value, setValue] = useState(propsValue ? Math.floor(propsValue / Number(unit)) : 0);\n\n const _onClick = (evt: React.ChangeEvent) => {\n setSessionTimeoutNever(evt.target.checked);\n\n if (onChange && evt.target.checked) {\n onChange(-1);\n }\n };\n\n const _onChangeValue = (evt: React.ChangeEvent) => {\n setValue(Number(evt.target.value));\n\n if (onChange) {\n onChange(Number(evt.target.value) * Number(unit));\n }\n };\n\n const _onChangeUnit = (newUnit: number) => {\n setUnit(newUnit);\n\n if (onChange) {\n onChange(value * Number(newUnit));\n }\n };\n\n return (\n \n \n \n \n Changing the timeout setting for sessions will log the user out of Graylog and will invalidate all their\n current sessions. If you are changing the setting for your own user, you will be logged out at the moment\n of saving the setting. In that case, make sure to save any pending changes before changing the timeout.\n \n \n \n <>\n \n\n
\n \n \n \n \n \n \n \n \n \n Session automatically end after this amount of time, unless they are actively used.\n \n \n \n
\n \n \n );\n};\n\nTimeoutInput.propTypes = {\n value: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nTimeoutInput.defaultProps = {\n value: MS_HOUR,\n onChange: () => {},\n};\n\nexport default TimeoutInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Field } from 'formik';\n\nimport TimeoutInput from 'components/users/TimeoutInput';\n\nconst TimeoutFormGroup = () => (\n \n {({ field: { name, value, onChange } }) => (\n onChange({ target: { name, value: newValue } })} />\n )}\n \n);\n\nexport default TimeoutFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { FastField } from 'formik';\n\nimport { Input } from 'components/bootstrap';\nimport { TimezoneSelect } from 'components/common';\n\nconst TimezoneFormGroup = () => (\n \n {({ field: { name, value, onChange } }) => (\n \n onChange({ target: { name, value: newValue } })} />\n \n )}\n \n);\n\nexport default TimezoneFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { $PropertyType } from 'utility-types';\n\nimport { LinkContainer } from 'components/common/router';\nimport type User from 'logic/users/User';\nimport Routes from 'routing/Routes';\nimport { ButtonToolbar, Button } from 'components/bootstrap';\n\ntype Props = {\n userId: $PropertyType,\n userIsReadOnly: boolean,\n};\n\nconst UserActionLinks = ({ userId, userIsReadOnly }: Props) => (\n \n \n \n \n {!userIsReadOnly && (\n \n \n \n )}\n \n \n \n \n);\n\nexport default UserActionLinks;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useEffect, useState } from 'react';\nimport { Formik, Form } from 'formik';\nimport { usePostHog } from 'posthog-js/react';\n\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport { FormikFormGroup, Spinner } from 'components/common';\nimport { Button, Row, Col, Input } from 'components/bootstrap';\nimport type { UserTelemetrySettings } from 'stores/telemetry/TelemetrySettingsStore';\nimport {\n TelemetrySettingsActions,\n} from 'stores/telemetry/TelemetrySettingsStore';\nimport AppConfig from 'util/AppConfig';\nimport TelemetryInfoText from 'logic/telemetry/TelemetryInfoText';\n\nconst TelemetrySettingsConfig = () => {\n const [settings, setSettings] = useState(undefined);\n const { enabled: isTelemetryEnabled } = AppConfig.telemetry() || {};\n const posthog = usePostHog();\n\n useEffect(() => {\n TelemetrySettingsActions.get().then((result) => {\n setSettings(result);\n });\n }, []);\n\n useEffect(() => {\n if (\n isTelemetryEnabled\n && settings?.telemetry_enabled\n && posthog?.has_opted_out_capturing()) {\n posthog.opt_in_capturing();\n }\n }, [isTelemetryEnabled, posthog, settings?.telemetry_enabled]);\n\n if (!settings) {\n return ;\n }\n\n const updateTelemetryOpt = (data: UserTelemetrySettings) => {\n if (posthog && isTelemetryEnabled && !data.telemetry_enabled) {\n posthog.capture('$opt_out');\n posthog.opt_out_capturing();\n }\n };\n\n const onSubmit = (data: UserTelemetrySettings, { setSubmitting }) => {\n updateTelemetryOpt(data);\n\n TelemetrySettingsActions.update(data).then(() => {\n setSubmitting(false);\n window.location.reload();\n });\n };\n\n return (\n \n \n onSubmit={onSubmit}\n initialValues={settings}>\n {({ isSubmitting, isValid }) => (\n
\n \n \n \n\n \n \n
\n \n
\n \n
\n \n )}\n \n
\n );\n};\n\nexport default TelemetrySettingsConfig;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { $PropertyType } from 'utility-types';\n\nimport { Alert, Col, Row } from 'components/bootstrap';\nimport type User from 'logic/users/User';\n\ntype Props = {\n fullName: $PropertyType,\n};\n\nconst ReadOnlyWarning = ({ fullName }: Props) => (\n \n \n \n The selected user {fullName} can't be edited.\n \n \n \n);\n\nexport default ReadOnlyWarning;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type * as Immutable from 'immutable';\nimport { useState, useEffect } from 'react';\nimport { Field, useFormikContext } from 'formik';\nimport styled from 'styled-components';\n\nimport { getValuesFromGRN } from 'logic/permissions/GRN';\nimport { Button, Alert, Input } from 'components/bootstrap';\nimport type SharedEntity from 'logic/permissions/SharedEntity';\nimport EntityShareDomain from 'domainActions/permissions/EntityShareDomain';\nimport Spinner from 'components/common/Spinner';\nimport Select from 'components/common/Select';\nimport useDashboards from 'views/components/dashboard/hooks/useDashboards';\nimport useStreams from 'components/streams/hooks/useStreams';\nimport useSavedSearches from 'views/hooks/useSavedSearches';\nimport type { SettingsFormValues } from 'components/users/UserEdit/SettingsSection';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst TypeSelect = styled(Select)`\n width: 200px;\n margin-right: 3px;\n`;\n\nconst ValueSelect = styled(Select)`\n width: 400px;\n`;\n\nconst ResetBtn = styled(Button)`\n margin-left: 5px;\n`;\n\ntype Props = {\n userId: string;\n permissions: Immutable.List;\n}\n\ntype Option = {\n value: string;\n label: string;\n}\n\n// We cannot ask for all since the backend did not implement something like this. So for now its 10000.\nconst UNLIMITED_ENTITY_SHARE_REQ = { page: 1, perPage: 10000, query: '' };\n\nconst grnId = (grn) => getValuesFromGRN(grn).id;\nconst _grnOptionFormatter = ({ id, title }: SharedEntity): Option => ({ value: grnId(id), label: title });\nconst typeOptions = [\n { value: 'dashboard', label: 'Dashboard' },\n { value: 'stream', label: 'Stream' },\n { value: 'search', label: 'Search' },\n];\n\nconst ADMIN_PERMISSION = '*';\n\nconst useStartPageOptions = (userId, permissions) => {\n const { values: { startpage } } = useFormikContext();\n const selectedUserIsAdmin = permissions.includes(ADMIN_PERMISSION);\n const [userDashboards, setUserDashboards] = useState([]);\n const [userStreams, setUserStreams] = useState([]);\n const [userSearches, setUserSearches] = useState([]);\n const [isLoadingUserEntities, setIsLoadingUserEntities] = useState(false);\n\n const { data: allDashboards, isInitialLoading: isLoadingAllDashboards } = useDashboards({ query: '', page: 1, pageSize: 0, sort: { direction: 'asc', attributeId: 'title' } }, { enabled: selectedUserIsAdmin });\n const { data: allStreams, isInitialLoading: isLoadingAllStreams } = useStreams({ query: '', page: 1, pageSize: 0, sort: { direction: 'asc', attributeId: 'title' } }, { enabled: selectedUserIsAdmin });\n const { data: allSearches, isInitialLoading: isLoadingAllSearches } = useSavedSearches({ query: '', page: 1, pageSize: 0, sort: { direction: 'asc', attributeId: 'title' } }, { enabled: selectedUserIsAdmin });\n const allDashboardsOptions = (allDashboards?.list ?? []).map(({ id, title }) => ({ value: id, label: title }));\n const allStreamsOptions = (allStreams?.elements ?? []).map(({ id, title }) => ({ value: id, label: title }));\n const allSearchesOptions = (allSearches?.list ?? []).map(({ id, title }) => ({ value: id, label: title }));\n\n useEffect(() => {\n if (!selectedUserIsAdmin) {\n setIsLoadingUserEntities(true);\n\n EntityShareDomain.loadUserSharesPaginated(userId, {\n ...UNLIMITED_ENTITY_SHARE_REQ,\n additionalQueries: { entity_type: 'dashboard' },\n }).then(({ list }) => setUserDashboards(list.map(_grnOptionFormatter).toArray()))\n .then(() => EntityShareDomain.loadUserSharesPaginated(userId, {\n ...UNLIMITED_ENTITY_SHARE_REQ,\n additionalQueries: { entity_type: 'stream' },\n }).then(({ list }) => {\n setUserStreams(list.map(_grnOptionFormatter).toArray());\n })).then(() => EntityShareDomain.loadUserSharesPaginated(userId, {\n ...UNLIMITED_ENTITY_SHARE_REQ,\n additionalQueries: { entity_type: 'search' },\n }).then(({ list }) => {\n setIsLoadingUserEntities(false);\n setUserSearches(list.map(_grnOptionFormatter).toArray());\n }));\n }\n }, [selectedUserIsAdmin, userId]);\n\n const prepareOptions = () => {\n switch (startpage?.type) {\n case 'dashboard':\n return [...userDashboards, ...allDashboardsOptions];\n case 'search':\n return [{ value: 'default', label: 'New Search' }, ...userSearches, ...allSearchesOptions];\n case 'stream':\n return [...userStreams, ...allStreamsOptions];\n default:\n return [];\n }\n };\n\n return {\n options: prepareOptions(),\n isLoading: isLoadingUserEntities || isLoadingAllDashboards || isLoadingAllSearches || isLoadingAllStreams,\n };\n};\n\nconst StartpageFormGroup = ({ userId, permissions }: Props) => {\n const { options, isLoading } = useStartPageOptions(userId, permissions);\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n {({ field: { name, value, onChange }, meta }) => {\n const type = value?.type ?? 'dashboard';\n\n const error = value?.id && options.findIndex(({ value: v }) => v === value.id) < 0\n ? User is missing permission for the configured page\n : null;\n\n const resetBtn = value?.type\n ? (\n onChange({ target: { name, value: {} } })}>\n Reset\n \n )\n : null;\n\n return (\n \n <>\n \n onChange({ target: { name, value: { type: newType, id: undefined } } })}\n value={value?.type} />\n onChange({ target: { name, value: { type: type, id: newId } } })}\n value={value?.id} />\n {resetBtn}\n \n {error}\n \n \n );\n }}\n \n );\n};\n\nexport default StartpageFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Formik, Form } from 'formik';\nimport styled from 'styled-components';\nimport type { $PropertyType } from 'utility-types';\n\nimport Routes from 'routing/Routes';\nimport { Button, Row, Col } from 'components/bootstrap';\nimport { IfPermitted, NoSearchResult, ReadOnlyFormGroup } from 'components/common';\nimport type User from 'logic/users/User';\nimport type { StartPage } from 'logic/users/User';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\nimport TimezoneFormGroup from '../UserCreate/TimezoneFormGroup';\nimport TimeoutFormGroup from '../UserCreate/TimeoutFormGroup';\nimport ServiceAccountFormGroup from '../UserCreate/ServiceAccountFormGroup';\nimport StartpageFormGroup from '../StartpageFormGroup';\nimport useIsGlobalTimeoutEnabled from '../../../hooks/useIsGlobalTimeoutEnabled';\nimport { Link } from '../../common/router';\n\nexport type SettingsFormValues = {\n timezone: string,\n session_timeout_ms: number,\n startpage: StartPage | null | undefined,\n service_account: boolean,\n}\n\nconst GlobalTimeoutMessage = styled(ReadOnlyFormGroup)`\n margin-bottom: 20px;\n \n .read-only-value-col {\n padding-top: 0;\n }\n`;\n\ntype Props = {\n user: User,\n onSubmit: (payload: { timezone: $PropertyType }) => Promise,\n};\n\nconst _validate = async (values) => {\n let errors = {};\n\n const { type, id } = values.startpage ?? {};\n\n if (type && !id) {\n errors = { startpage: 'Please select an entity.' };\n }\n\n return errors;\n};\n\nconst SettingsSection = ({\n user: {\n id,\n timezone,\n sessionTimeoutMs,\n startpage,\n permissions,\n serviceAccount,\n },\n onSubmit,\n}: Props) => {\n const isGlobalTimeoutEnabled = useIsGlobalTimeoutEnabled();\n\n return (\n \n onSubmit={onSubmit}\n validate={_validate}\n initialValues={{ timezone, session_timeout_ms: sessionTimeoutMs, startpage, service_account: serviceAccount }}>\n {({ isSubmitting, isValid }) => (\n
\n \n {isGlobalTimeoutEnabled ? (\n User session timeout is not editable because the global session timeout is enabled.} />\n ) : (\n \n )}\n \n \n \n \n \n \n\n \n \n
\n \n
\n \n
\n \n )}\n \n
\n );\n};\n\nexport default SettingsSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Formik, Form } from 'formik';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport AppConfig from 'util/AppConfig';\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport { Button, Row, Col } from 'components/bootstrap';\nimport { FormikFormGroup } from 'components/common';\nimport type User from 'logic/users/User';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\nimport { validatePasswords } from '../UserCreate/PasswordFormGroup';\n\nconst isCloud = AppConfig.isCloud();\n\nconst oktaUserForm = isCloud ? PluginStore.exports('cloud')[0].oktaUserForm : null;\ntype Props = {\n user: User,\n};\n\nconst _validate = (values) => {\n let errors = {};\n\n const { password, password_repeat: passwordRepeat } = values;\n\n if (isCloud && oktaUserForm) {\n const { validations: { password: validateCloudPasswords } } = oktaUserForm;\n\n errors = validateCloudPasswords(errors, password, passwordRepeat);\n } else {\n errors = validatePasswords(errors, password, passwordRepeat);\n }\n\n return errors;\n};\n\nconst _onSubmit = (formData, userId) => {\n const data = { ...formData };\n delete data.password_repeat;\n\n return UsersDomain.changePassword(userId, data);\n};\n\nconst PasswordGroup = () => {\n if (isCloud && oktaUserForm) {\n const { fields: { password: CloudPasswordFormGroup } } = oktaUserForm;\n\n return ;\n }\n\n return (\n <>\n \n \n \n );\n};\n\nconst PasswordSection = ({ user: { id } }: Props) => {\n const currentUser = useCurrentUser();\n let requiresOldPassword = true;\n\n if (isPermitted(currentUser?.permissions, 'users:passwordchange:*')) {\n // Ask for old password if user is editing their own account\n requiresOldPassword = id === currentUser?.id;\n }\n\n return (\n \n _onSubmit(formData, id)}\n validate={_validate}\n initialValues={{}}>\n {({ isSubmitting, isValid }) => (\n
\n {requiresOldPassword && (\n \n )}\n \n \n \n
\n \n
\n \n
\n \n )}\n
\n
\n );\n};\n\nexport default PasswordSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { Alert } from 'components/bootstrap';\n\nconst ProfileUpdateInfo = () => (\n \n With Graylog 4.1, we've added distinct first and last name fields. These must be provided before the user’s profile can be saved.\n \n);\n\nexport default ProfileUpdateInfo;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Formik, Form } from 'formik';\nimport type { $PropertyType } from 'utility-types';\nimport styled from 'styled-components';\n\nimport { Button, Col, Row } from 'components/bootstrap';\nimport { ReadOnlyFormGroup } from 'components/common';\nimport type User from 'logic/users/User';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport AppConfig from 'util/AppConfig';\n\nimport ProfileUpdateInfo from './ProfileUpdateInfo';\n\nimport FirstNameFormGroup from '../UserCreate/FirstNameFormGroup';\nimport LastNameFormGroup from '../UserCreate/LastNameFormGroup';\nimport EmailFormGroup from '../UserCreate/EmailFormGroup';\n\nconst isCloud = AppConfig.isCloud();\ntype Props = {\n user: User,\n onSubmit: (payload: {\n first_name: $PropertyType,\n last_name: $PropertyType,\n email: $PropertyType,\n }) => Promise,\n};\n\nconst StyledReadOnlyFormGroup = styled(ReadOnlyFormGroup)`\n &:not(:last-child) {\n margin-bottom: 15px;\n }\n`;\n\nconst ProfileSection = ({\n user,\n onSubmit,\n}: Props) => {\n const {\n username,\n fullName,\n firstName,\n lastName,\n email,\n } = user;\n\n const _getUserNameGroup = () => {\n if (isCloud) {\n return ;\n }\n\n return (\n \n );\n };\n\n const _getEmailGroup = () => {\n if (isCloud) {\n return null;\n }\n\n return (\n \n );\n };\n\n const isOldUser = () => fullName && (!firstName && !lastName);\n\n return (\n \n {isOldUser() && }\n \n {({ isSubmitting, isValid }) => (\n
\n {isOldUser() && }\n \n \n {_getUserNameGroup()}\n {_getEmailGroup()}\n \n \n
\n \n
\n \n
\n \n )}\n
\n
\n );\n};\n\nexport default ProfileSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Formik, Form } from 'formik';\n\nimport { PREFERENCES_THEME_MODE } from 'theme/constants';\nimport { Button, Row, Col, Input } from 'components/bootstrap';\nimport { FormikFormGroup, ReadOnlyFormGroup } from 'components/common';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport type User from 'logic/users/User';\nimport type { PreferencesUpdateMap } from 'stores/users/PreferencesStore';\nimport { PreferencesActions } from 'stores/users/PreferencesStore';\n\ntype Props = {\n user: User,\n};\n\nconst PreferencesSection = ({ user }: Props) => {\n const onSubmit = (data: PreferencesUpdateMap) => PreferencesActions.saveUserPreferences(user.username, data);\n\n return (\n \n onSubmit={onSubmit}\n initialValues={user.preferences}>\n {({ isSubmitting, isValid }) => (\n
\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n\n \n \n
\n \n
\n \n
\n \n )}\n \n
\n );\n};\n\nexport default PreferencesSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\nimport * as Immutable from 'immutable';\nimport styled from 'styled-components';\n\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport AuthzRolesDomain from 'domainActions/roles/AuthzRolesDomain';\nimport { ErrorAlert } from 'components/common';\nimport type User from 'logic/users/User';\nimport type { DescriptiveItem } from 'components/common/PaginatedItemOverview';\nimport PaginatedItemOverview, {\n DEFAULT_PAGINATION,\n} from 'components/common/PaginatedItemOverview';\nimport type { PaginatedRoles } from 'actions/roles/AuthzRolesActions';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport RolesSelector from 'components/permissions/RolesSelector';\n\nimport RolesQueryHelp from '../RolesQueryHelp';\n\ntype Props = {\n user: User,\n onSubmit: (payload: { roles: string[] }) => Promise,\n};\n\nconst Container = styled.div`\n margin-top: 15px;\n margin-bottom: 15px;\n`;\n\nconst RolesSection = ({ user, onSubmit }: Props) => {\n const { username, id } = user;\n const [loading, setLoading] = useState(false);\n const [paginatedRoles, setPaginatedRoles] = useState();\n const [errors, setErrors] = useState();\n\n const _onLoad = useCallback((pagination = DEFAULT_PAGINATION) => {\n setLoading(true);\n\n return AuthzRolesDomain.loadRolesForUser(username, pagination).then((newPaginatedRoles) => {\n setLoading(false);\n\n return newPaginatedRoles;\n });\n }, [username]);\n\n const onRolesUpdate = (data: { roles: Array }) => onSubmit(data).then(() => {\n _onLoad().then(setPaginatedRoles);\n UsersDomain.load(id);\n });\n\n const _onAssignRole = (newRoles: Immutable.Set) => {\n const userRoles = user.roles;\n const newRoleNames = newRoles.map((r) => r.name);\n const newUserRoles = userRoles.union(newRoleNames).toJS();\n\n setErrors(undefined);\n\n return onRolesUpdate({ roles: newUserRoles });\n };\n\n const ensureReaderOrAdminRole = (newRoles) => newRoles.includes('Reader') || newRoles.includes('Admin');\n\n const onDeleteRole = (role: DescriptiveItem) => {\n const newUserRoles = Immutable.Set(user.roles.toJS()).remove(role.name).toJS();\n\n if (ensureReaderOrAdminRole(newUserRoles)) {\n onRolesUpdate({ roles: newUserRoles });\n setErrors(undefined);\n } else {\n setErrors('Roles must at least contain Admin or Reader role.');\n _onLoad().then(setPaginatedRoles);\n }\n };\n\n return (\n \n

Assign Roles

\n \n role.name} />\n \n\n \n {errors}\n \n

Selected Roles

\n \n } />\n \n
\n );\n};\n\nexport default RolesSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport type User from 'logic/users/User';\nimport { EnterprisePluginNotFound } from 'components/common';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\ntype Props = {\n user: User,\n};\n\nconst TeamsSection = ({ user }: Props) => {\n const teamsPlugin = PluginStore.exports('teams');\n const UserTeamsAssignment = teamsPlugin?.[0]?.UserTeamsAssignment;\n\n return (\n \n {UserTeamsAssignment ? : }\n \n );\n};\n\nexport default TeamsSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport { Spinner, IfPermitted } from 'components/common';\nimport { Alert } from 'components/bootstrap';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport type User from 'logic/users/User';\nimport { CurrentUserStore } from 'stores/users/CurrentUserStore';\nimport TelemetrySettingsConfig from 'logic/telemetry/TelemetrySettingsConfig';\n\nimport ReadOnlyWarning from './ReadOnlyWarning';\nimport SettingsSection from './SettingsSection';\nimport PasswordSection from './PasswordSection';\nimport ProfileSection from './ProfileSection';\nimport PreferencesSection from './PreferencesSection';\nimport RolesSection from './RolesSection';\nimport TeamsSection from './TeamsSection';\n\nimport PermissionsUpdateInfo from '../PermissionsUpdateInfo';\nimport SectionGrid from '../../common/Section/SectionGrid';\n\ntype Props = {\n user: User,\n};\n\nconst _updateUser = (data, currentUser, userId, fullName) => UsersDomain.update(userId, data, fullName).then(() => {\n if (userId === currentUser?.id) {\n CurrentUserStore.reload();\n }\n});\n\nconst UserEdit = ({ user }: Props) => {\n const currentUser = useCurrentUser();\n\n if (!user) {\n return ;\n }\n\n if (user.readOnly) {\n return ;\n }\n\n return (\n \n \n
\n {user.external && (\n \n \n This user was synced from an external server, therefore neither\n the profile nor the password can be changed. Please contact your administrator for more information.\n \n \n )}\n {!user.external && (\n _updateUser(data, currentUser, user.id, user.fullName)} />\n )}\n _updateUser(data, currentUser, user.id, user.fullName)} />\n \n {!user.external && }\n \n \n
\n
\n \n \n _updateUser(data, currentUser, user.id, user.fullName)} />\n \n \n \n \n {(currentUser.id === user.id) && (\n \n \n \n )}\n
\n
\n
\n );\n};\n\nexport default UserEdit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport UserEdit from './UserEdit';\n\nexport default UserEdit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { UsersActions } from 'stores/users/UsersStore';\nimport withParams from 'routing/withParams';\nimport DocsHelper from 'util/DocsHelper';\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport { PageHeader, DocumentTitle } from 'components/common';\nimport UserEdit from 'components/users/UserEdit';\nimport UsersPageNavigation from 'components/users/navigation/UsersPageNavigation';\nimport UserActionLinks from 'components/users/navigation/UserActionLinks';\nimport type User from 'logic/users/User';\n\ntype Props = {\n params: {\n userId: string,\n },\n};\n\nconst PageTitle = ({ fullName }: { fullName: string | null | undefined }) => (\n <>\n Edit User {fullName && (\n <>\n - {fullName}\n \n )}\n \n);\n\nconst _updateUserOnLoad = (setLoadedUser: (value: User) => void) => UsersActions.load.completed.listen(setLoadedUser);\n\nconst UserEditPage = ({ params }: Props) => {\n const [loadedUser, setLoadedUser] = useState();\n const userId = params?.userId;\n\n // We need to trigger a user state update in child components and do so by calling the load action\n // and by defining a listener for this action which updates the state.\n useEffect(() => _updateUserOnLoad(setLoadedUser), []);\n\n useEffect(() => {\n UsersDomain.load(userId);\n }, [userId]);\n\n const fullName = loadedUser?.fullName ?? '';\n const readOnly = loadedUser?.readOnly ?? false;\n const userToEdit = userId === loadedUser?.id ? loadedUser : undefined;\n\n return (\n \n \n }\n actions={(\n \n )}\n documentationLink={{\n title: 'Permissions documentation',\n path: DocsHelper.PAGES.USERS_ROLES,\n }}>\n \n You can change the user details and password here and assign roles and teams.\n \n \n \n \n );\n};\n\nexport default withParams(UserEditPage);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useParams } from 'react-router-dom';\nimport type { Subtract } from 'utility-types';\n\ntype ParamsContext = {\n params: {\n [key: string]: string | null | undefined;\n };\n};\n\nconst withParams = (Component: React.ComponentType): React.ComponentType> => (props) => {\n const params = useParams();\n\n return ;\n};\n\nexport default withParams;\n"],"names":["SubmitButton","FormElements","RoleSelectOption","StyledSelect","_renderRoleOption","label","_options","roles","assignedRolesIds","identifier","role","r","_assignRole","selectedRoleNames","onSubmit","setselectedRoleNames","setIsSubmitting","setError","selectedRoleNameList","selectedRoles","selection","_loadRoles","setPaginatedRoles","getUnlimited","RolesSelector","submitOnSelect","paginatedRoles","isSubmitting","error","onChange","items","_onSubmit","options","filters","attributeId","filterValues","value","INITIAL_DATA","searchParams","enabled","data","refetch","isInitialLoading","StreamsStore","errorThrown","UserNotification","rolesQueryHelpPopover","PASSWORD_MIN_LENGTH","validatePasswords","errors","password","passwordRepeat","newErrors","PasswordFormGroup","showModal","setShowModal","name","onValueChange","newValue","handleCheckServiceAccount","handleCancel","MS_DAY","MS_HOUR","MS_MINUTE","MS_SECOND","TimeoutSelect","OPTIONS","props","_estimateUnit","TimeoutInput","propsValue","sessionTimeoutNever","setSessionTimeoutNever","unit","setUnit","setValue","_onClick","evt","_onChangeValue","_onChangeUnit","newUnit","userId","userIsReadOnly","settings","setSettings","isTelemetryEnabled","posthog","result","updateTelemetryOpt","setSubmitting","isValid","fullName","Container","TypeSelect","Select","ValueSelect","ResetBtn","UNLIMITED_ENTITY_SHARE_REQ","grnId","grn","_grnOptionFormatter","id","title","typeOptions","ADMIN_PERMISSION","useStartPageOptions","permissions","startpage","selectedUserIsAdmin","userDashboards","setUserDashboards","userStreams","setUserStreams","userSearches","setUserSearches","isLoadingUserEntities","setIsLoadingUserEntities","allDashboards","isLoadingAllDashboards","useDashboards","allStreams","isLoadingAllStreams","useStreams","allSearches","isLoadingAllSearches","useSavedSearches","allDashboardsOptions","allStreamsOptions","allSearchesOptions","EntityShareDomain","list","isLoading","Spinner","meta","type","v","resetBtn","newType","newId","GlobalTimeoutMessage","_validate","values","timezone","sessionTimeoutMs","serviceAccount","isGlobalTimeoutEnabled","useIsGlobalTimeoutEnabled","SectionComponent","Routes","TimeoutFormGroup","TimezoneFormGroup","ServiceAccountFormGroup","isCloud","AppConfig","oktaUserForm","validateCloudPasswords","formData","UsersDomain","PasswordGroup","CloudPasswordFormGroup","currentUser","useCurrentUser","requiresOldPassword","StyledReadOnlyFormGroup","user","username","firstName","lastName","email","_getUserNameGroup","_getEmailGroup","EmailFormGroup","isOldUser","FirstNameFormGroup","LastNameFormGroup","loading","setLoading","setErrors","_onLoad","pagination","AuthzRolesDomain","newPaginatedRoles","onRolesUpdate","_onAssignRole","newRoles","userRoles","newRoleNames","newUserRoles","ensureReaderOrAdminRole","onDeleteRole","PaginatedItemOverview","RolesQueryHelp","teamsPlugin","UserTeamsAssignment","_updateUser","CurrentUserStore","SectionGrid","PermissionsUpdateInfo","TelemetrySettingsConfig","PageTitle","_updateUserOnLoad","setLoadedUser","UserEditPage","params","loadedUser","readOnly","userToEdit","UsersPageNavigation","UserActionLinks","DocsHelper","withParams","Component"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy