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

web-interface.assets.bb8c8232-3795.00a590d9f21f452fb329.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"bb8c8232-3795.00a590d9f21f452fb329.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/users/navigation/UserActionLinks.tsx","webpack://graylog-web-interface/./src/components/users/navigation/UsersPageNavigation.tsx","webpack://graylog-web-interface/./src/components/users/CreateTokenForm.tsx","webpack://graylog-web-interface/./src/components/users/TokenList.tsx","webpack://graylog-web-interface/./src/pages/UserTokensEditPage.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 * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n  hoverIndicatorStyles,\n  activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n  margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n  font-family: ${theme.fonts.family.navigation};\n  font-size: ${theme.fonts.size.navigation};\n  color: ${theme.colors.variant.darker.default};\n  \n  &:hover,\n  &:focus {\n    background: inherit;\n    text-decoration: none;\n  }\n\n  &:hover {\n    color: inherit;\n    ${hoverIndicatorStyles(theme)}\n  }\n\n  &.active {\n    color: ${theme.colors.global.textDefault};\n\n    ${activeIndicatorStyles(theme)}\n\n    &:hover,\n    &:focus {\n      ${activeIndicatorStyles(theme)}\n    }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n  /**\n   * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n   * By default, an item is active if the current URL starts with the item URL.\n   * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n   */\n  items: Array<{\n    title: string,\n    path: string,\n    permissions?: string | Array\n    exactPathMatch?: boolean,\n  }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n  \n    {items.map(({ path, title, permissions, exactPathMatch }) => {\n      if (!path) {\n        return null;\n      }\n\n      return (\n        \n          \n            \n              \n                {title}\n              \n            \n          \n        \n      );\n    })}\n  \n);\n\nexport default PageNavigation;\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 * as React from 'react';\n\nimport Routes from 'routing/Routes';\nimport PageNavigation from 'components/common/PageNavigation';\nimport { Row } from 'components/bootstrap';\n\nconst UsersPageNavigation = () => {\n  const NAV_ITEMS = [\n    { title: 'Users Overview', path: Routes.SYSTEM.USERS.OVERVIEW, permissions: 'users:list' },\n    { title: 'Teams Overview', path: Routes.getPluginRoute('SYSTEM_TEAMS'), permissions: 'teams:list' },\n  ];\n\n  return (\n    \n      \n    \n  );\n};\n\nexport default UsersPageNavigation;\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, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button, ControlLabel, FormControl, FormGroup } from 'components/bootstrap';\nimport { Spinner } from 'components/common';\n\nconst StyledForm = styled.form`\n  margin-top: 10px;\n\n  &.form-inline > .form-group {\n    margin-right: 10px;\n\n    > input {\n      width: 300px;\n    }\n  }\n`;\n\ntype Props = {\n  creatingToken: boolean,\n  disableForm: boolean,\n  onCreate: (tokenName: string) => void,\n};\n\nconst CreateTokenForm = ({ creatingToken, disableForm, onCreate }: Props) => {\n  const [tokenName, setTokenName] = useState('');\n\n  const createToken = (event: React.SyntheticEvent) => {\n    event.preventDefault();\n    onCreate(tokenName);\n    setTokenName('');\n  };\n\n  return (\n    \n      \n        Token Name\n         setTokenName((event.target as HTMLInputElement).value)} />\n      \n      \n    \n  );\n};\n\nCreateTokenForm.propTypes = {\n  creatingToken: PropTypes.bool,\n  disableForm: PropTypes.bool,\n  onCreate: PropTypes.func.isRequired,\n};\n\nCreateTokenForm.defaultProps = {\n  creatingToken: false,\n  disableForm: false,\n};\n\nexport default CreateTokenForm;\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 PropTypes from 'prop-types';\nimport React, { useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { ClipboardButton, ControlledTableList, Icon, RelativeTime, SearchForm, Spinner } from 'components/common';\nimport { Button, Col, Panel, Row } from 'components/bootstrap';\nimport type { Token, TokenSummary } from 'stores/users/UsersStore';\nimport { sortByDate } from 'util/SortUtils';\n\nimport CreateTokenForm from './CreateTokenForm';\n\nconst StyledTokenPanel = styled(Panel)`\n  &.panel {\n    margin: 10px 0;\n    background-color: ${(props) => props.theme.colors.global.contentBackground};\n\n    .panel-heading {\n      color: ${(props) => props.theme.colors.gray[30]};\n    }\n  }\n`;\n\nconst StyledCopyTokenButton = styled(ClipboardButton)`\n  vertical-align: baseline;\n  margin-left: 1em;\n`;\n\nconst StyledSearchForm = styled(SearchForm)`\n  margin-bottom: 10px;\n`;\n\nconst StyledLastAccess = styled.div`\n  color: ${(props) => props.theme.colors.gray[60]};\n  font-size: ${(props) => props.theme.fonts.size.small};\n  margin-bottom: 5px;\n`;\n\ntype Props = {\n  creatingToken: boolean,\n  deletingToken?: string,\n  onCreate: (tokenName: string) => Promise,\n  onDelete: (tokenId: string, tokenName: string) => void,\n  tokens: TokenSummary[],\n};\n\nconst TokenList = ({ creatingToken, deletingToken, onCreate, onDelete, tokens }: Props) => {\n  const [createdToken, setCreatedToken] = useState();\n  const [query, setQuery] = useState('');\n\n  const effectiveTokens = useMemo(() => {\n    const queryRegex = new RegExp(query, 'i');\n\n    return tokens\n      .filter(({ name }) => queryRegex.test(name))\n      .sort((token1, token2) => sortByDate(token1.last_access, token2.last_access, 'desc'));\n  }, [query, tokens]);\n\n  const handleTokenCreation = (tokenName) => {\n    const promise = onCreate(tokenName);\n\n    promise.then((token) => {\n      setCreatedToken(token);\n\n      return token;\n    });\n  };\n\n  const deleteToken = (token) => () => {\n    onDelete(token.id, token.name);\n  };\n\n  const updateQuery = (nextQuery?: string) => setQuery(nextQuery || '');\n\n  return (\n    \n      \n      {createdToken && (\n        \n          \n            Token {createdToken.name} created!\n          \n          \n            

This is your new token. Make sure to copy it now, you will not be able to see it again.

\n
\n              {createdToken.token}\n              } text={createdToken.token} bsSize=\"xsmall\" />\n            
\n \n
\n
\n )}\n
\n \n\n \n \n {effectiveTokens.length === 0 && (\n \n

{query === '' ? 'No tokens to display.' : 'No tokens match the filter.'}

\n
\n )}\n {effectiveTokens.map((token) => {\n const tokenNeverUsed = Date.parse(token.last_access) === 0;\n\n return (\n \n \n \n {token.name}\n \n {tokenNeverUsed ? 'Never used' : <>Last used }\n \n \n \n \n \n \n \n );\n })}\n
\n
\n );\n};\n\nTokenList.propTypes = {\n tokens: PropTypes.arrayOf(PropTypes.object),\n onDelete: PropTypes.func,\n onCreate: PropTypes.func,\n creatingToken: PropTypes.bool,\n deletingToken: PropTypes.string,\n};\n\nTokenList.defaultProps = {\n tokens: [],\n onDelete: () => {},\n onCreate: () => {},\n creatingToken: false,\n deletingToken: undefined,\n};\n\nexport default TokenList;\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, useCallback } from 'react';\n\nimport type User from 'logic/users/User';\nimport withParams from 'routing/withParams';\nimport { Row, Col } from 'components/bootstrap';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport DocsHelper from 'util/DocsHelper';\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport { PageHeader, DocumentTitle, Spinner } from 'components/common';\nimport { Headline } from 'components/common/Section/SectionComponent';\nimport TokenList from 'components/users/TokenList';\nimport UsersPageNavigation from 'components/users/navigation/UsersPageNavigation';\nimport UserActionLinks from 'components/users/navigation/UserActionLinks';\nimport useCurrentUser from 'hooks/useCurrentUser';\n\ntype Props = {\n params: {\n userId: string,\n },\n};\n\nconst PageTitle = ({ fullName }: { fullName: string | null | undefined }) => (\n <>\n Edit Tokens Of User {fullName && (\n <>\n - {fullName}\n \n )}\n \n);\n\nconst _loadTokens = (loadedUser, currentUser, setTokens) => {\n if (loadedUser) {\n if (isPermitted(currentUser?.permissions, [`users:tokenlist:${loadedUser.username}`])) {\n UsersDomain.loadTokens(loadedUser.id).then(setTokens);\n } else {\n setTokens([]);\n }\n }\n};\n\nconst _deleteToken = (tokenId, tokenName, userId, loadTokens, setDeletingTokenId) => {\n const promise = UsersDomain.deleteToken(userId, tokenId, tokenName);\n\n setDeletingTokenId(tokenId);\n\n promise.then(() => {\n loadTokens();\n setDeletingTokenId(undefined);\n });\n};\n\nconst _createToken = (tokenName, userId, loadTokens, setCreatingToken) => {\n const promise = UsersDomain.createToken(userId, tokenName);\n\n setCreatingToken(true);\n\n return promise.then((token) => {\n loadTokens();\n setCreatingToken(false);\n\n return token;\n });\n};\n\nconst UserEditPage = ({ params }: Props) => {\n const currentUser = useCurrentUser();\n const [loadedUser, setLoadedUser] = useState();\n const [tokens, setTokens] = useState([]);\n const [deletingTokenId, setDeletingTokenId] = useState();\n const [creatingToken, setCreatingToken] = useState(false);\n\n const userId = params?.userId;\n\n const loadTokens = useCallback(() => _loadTokens(loadedUser, currentUser, setTokens), [currentUser, loadedUser]);\n const _handleTokenDelete = (tokenId, tokenName) => _deleteToken(tokenId, tokenName, userId, loadTokens, setDeletingTokenId);\n const _handleTokenCreate = (tokenName) => _createToken(tokenName, userId, loadTokens, setCreatingToken);\n\n useEffect(() => { loadTokens(); }, [loadTokens, loadedUser]);\n useEffect(() => { UsersDomain.load(userId).then(setLoadedUser); }, [userId]);\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 create new tokens or delete old ones.\n \n \n\n \n \n Create And Edit Tokens\n {loadedUser ? (\n \n ) : (\n \n \n \n \n \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":["Container","StyledButton","theme","items","path","title","permissions","exactPathMatch","userId","userIsReadOnly","NAV_ITEMS","StyledForm","CreateTokenForm","creatingToken","disableForm","onCreate","tokenName","setTokenName","createToken","event","StyledTokenPanel","props","StyledCopyTokenButton","StyledSearchForm","StyledLastAccess","TokenList","deletingToken","onDelete","tokens","createdToken","setCreatedToken","query","setQuery","effectiveTokens","queryRegex","name","token1","token2","handleTokenCreation","token","deleteToken","updateQuery","nextQuery","tokenNeverUsed","PageTitle","fullName","_loadTokens","loadedUser","currentUser","setTokens","UsersDomain","_deleteToken","tokenId","loadTokens","setDeletingTokenId","promise","_createToken","setCreatingToken","UserEditPage","params","useCurrentUser","setLoadedUser","deletingTokenId","_handleTokenDelete","_handleTokenCreate","UsersPageNavigation","UserActionLinks","DocsHelper","withParams","Component"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy