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

web-interface.assets.bb8c8232-8997.326a79cbe1e9cb0e6697.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"bb8c8232-8997.326a79cbe1e9cb0e6697.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/PaginatedItemOverview/index.tsx","webpack://graylog-web-interface/./src/components/roles/RoleDetails/ProfileSection.tsx","webpack://graylog-web-interface/./src/components/roles/navigation/RoleActionLinks.tsx","webpack://graylog-web-interface/./src/domainActions/roles/AuthzRolesDomain.ts","webpack://graylog-web-interface/./src/components/roles/RoleEdit/UsersSelector.tsx","webpack://graylog-web-interface/./src/components/roles/RoleEdit/UsersSection.tsx","webpack://graylog-web-interface/./src/components/roles/RoleEdit/TeamsSection.tsx","webpack://graylog-web-interface/./src/components/roles/RoleEdit/index.ts","webpack://graylog-web-interface/./src/components/roles/RoleEdit/RoleEdit.tsx","webpack://graylog-web-interface/./src/pages/RoleEditPage.tsx","webpack://graylog-web-interface/./src/routing/withParams.tsx","webpack://graylog-web-interface/./src/logic/roles/Role.ts","webpack://graylog-web-interface/./src/actions/roles/AuthzRolesActions.ts","webpack://graylog-web-interface/./src/stores/roles/AuthzRolesStore.ts"],"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';\n\nimport type Role from 'logic/roles/Role';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport { ReadOnlyFormGroup } from 'components/common';\n\ntype Props = {\n  role: Role,\n};\n\nconst ProfileSection = ({\n  role: {\n    name,\n    description,\n  },\n}: Props) => (\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 type { $PropertyType } from 'utility-types';\n\nimport { LinkContainer } from 'components/common/router';\nimport type Role from 'logic/roles/Role';\nimport Routes from 'routing/Routes';\nimport { ButtonToolbar, Button } from 'components/bootstrap';\n\ntype Props = {\n  roleId: $PropertyType,\n};\n\nconst RoleActionLinks = ({ roleId }: Props) => (\n  \n    \n      \n    \n    \n      \n    \n  \n);\n\nexport default RoleActionLinks;\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 { AuthzRolesActions } from 'stores/roles/AuthzRolesStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst load = notifyingAction({\n  action: AuthzRolesActions.load,\n  error: (error, roleId) => ({\n    message: `Loading role with id \"${roleId}\" failed with status: ${error}`,\n  }),\n  notFoundRedirect: true,\n});\n\nconst deleteAction = notifyingAction({\n  action: AuthzRolesActions.delete,\n  success: (_roleId, roleName) => ({\n    message: `Role \"${roleName}\" was deleted successfully`,\n  }),\n  error: (error, _roleId, roleName) => ({\n    message: `Deleting role \"${roleName}\" failed with status: ${error}`,\n  }),\n});\n\nconst addMembers = notifyingAction({\n  action: AuthzRolesActions.addMembers,\n  success: (_roleId, usernames) => ({\n    message: `Users:\"${usernames.join(', ')}\" were assigned successfully`,\n  }),\n  error: (error, _roleId, usernames) => ({\n    message: `Assigning users \"${usernames.join(', ')}\" failed with status: ${error}`,\n  }),\n});\n\nconst removeMember = notifyingAction({\n  action: AuthzRolesActions.removeMember,\n  success: (_roleId, username) => ({\n    message: `User \"${username}\" was unassigned successfully`,\n  }),\n  error: (error, _roleId, username) => ({\n    message: `Unassign user \"${username}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadUsersForRole = notifyingAction({\n  action: AuthzRolesActions.loadUsersForRole,\n  error: (error, _roleId, roleName) => ({\n    message: `Loading users for role \"${roleName}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadRolesForUser = notifyingAction({\n  action: AuthzRolesActions.loadRolesForUser,\n  error: (error, username) => ({\n    message: `Loading roles for user \"${username}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadRolesPaginated = notifyingAction({\n  action: AuthzRolesActions.loadRolesPaginated,\n  error: (error) => ({\n    message: `Loading roles failed with status: ${error}`,\n  }),\n});\n\nexport default {\n  load,\n  delete: deleteAction,\n  addMembers,\n  removeMember,\n  loadUsersForRole,\n  loadRolesForUser,\n  loadRolesPaginated,\n};\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';\nimport { Formik, Form, Field } from 'formik';\nimport styled, { css } from 'styled-components';\nimport compact from 'lodash/compact';\nimport * as Immutable from 'immutable';\n\nimport { AuthzRolesActions } from 'stores/roles/AuthzRolesStore';\nimport type Role from 'logic/roles/Role';\nimport type { PaginatedListType } from 'components/common/PaginatedItemOverview';\nimport type UserOverview from 'logic/users/UserOverview';\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport { Button } from 'components/bootstrap';\nimport { Select, ErrorAlert } from 'components/common';\n\ntype Props = {\n  onSubmit: (user: Immutable.Set) => Promise,\n  role: Role,\n};\n\nconst SubmitButton = styled(Button)`\n  margin-left: 15px;\n`;\n\nconst FormElements = styled.div`\n  display: flex;\n`;\n\nconst Errors = styled.div(({ theme }) => css`\n  width: 100%;\n  margin-top: 3px;\n  color: ${theme.colors.variant.danger};\n\n  > * {\n    margin-right: 5px;\n\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n`);\n\nconst SelectOption = styled.div`\n  display: flex;\n  align-items: center;\n`;\n\nconst StyledSelect = styled(Select)`\n  flex: 1;\n`;\n\nconst _renderOption = ({ label }: { label: string }) => (\n  {label}\n);\n\nconst _isRequired = (field) => (value) => (!value ? `The ${field} is required` : undefined);\n\nconst UsersSelector = ({ role, onSubmit }: Props) => {\n  const [users, setUsers] = useState>(Immutable.List.of());\n  const [options, setOptions] = useState([]);\n  const [error, setError] = useState();\n\n  const _loadUsers = useCallback(() => {\n    const getUnlimited = { page: 1, perPage: 0, query: '' };\n\n    UsersDomain.loadUsersPaginated(getUnlimited)\n      .then((paginatedUsers) => {\n        const resultUsers = paginatedUsers.list\n          .filter((u) => !u.roles.includes(role.name))\n          .map((u) => ({ label: u.name, value: u.name }))\n          .toArray();\n\n        setOptions(resultUsers);\n        setUsers(paginatedUsers.list);\n      });\n  }, [role]);\n\n  const onUpdate = ({ user }: { user: string }, { resetForm }) => {\n    if (!user) {\n      return;\n    }\n\n    const newUsers = user.split(',');\n    const userOverview: Immutable.Set = Immutable.Set(compact(newUsers.map((newUser) => users.find((u) => u.username === newUser))));\n\n    if (!userOverview) {\n      setError(`This is an exceptional error! Unable to find user with name ${user} in ${users.map((u) => u.username).join(', ')}`);\n\n      return;\n    }\n\n    setError(undefined);\n    onSubmit(userOverview).then(() => { resetForm(); });\n  };\n\n  useEffect(() => {\n    _loadUsers();\n\n    const unlistenAddMember = AuthzRolesActions.addMembers.completed.listen(_loadUsers);\n    const unlistenRemoveMember = AuthzRolesActions.removeMember.completed.listen(_loadUsers);\n\n    return () => {\n      unlistenRemoveMember();\n      unlistenAddMember();\n    };\n  }, [role, _loadUsers]);\n\n  return (\n    
\n \n {error}\n \n \n {({ isSubmitting, isValid, errors }) => (\n
\n \n \n {({ field: { name, value, onChange } }) => (\n {\n onChange({ target: { value: user, name } });\n }}\n optionRenderer={_renderOption}\n multi\n options={options}\n placeholder=\"Search for users\"\n value={value} />\n )}\n \n \n Assign User\n \n \n {errors && (\n \n {Object.entries(errors).map(([fieldKey, value]: [string, unknown]) => (\n {String(value)}.\n ))}\n \n )}\n
\n )}\n
\n
\n );\n};\n\nexport default UsersSelector;\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 styled from 'styled-components';\nimport type * as Immutable from 'immutable';\n\nimport { ErrorAlert, PaginatedItemOverview } from 'components/common';\nimport AuthzRolesDomain from 'domainActions/roles/AuthzRolesDomain';\nimport type UserOverview from 'logic/users/UserOverview';\nimport { DEFAULT_PAGINATION } from 'components/common/PaginatedItemOverview';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport type Role from 'logic/roles/Role';\nimport type { PaginatedList } from 'stores/PaginationTypes';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport UsersSelector from './UsersSelector';\n\ntype Props = {\n role: Role,\n};\n\nconst Container = styled.div`\n margin-top: 15px;\n margin-bottom: 15px;\n`;\n\nconst UsersSection = ({ role: { id, name }, role }: Props) => {\n const [loading, setLoading] = useState(false);\n const [paginatedUsers, setPaginatedUsers] = useState>();\n const [errors, setErrors] = useState();\n const { pathname } = useLocation();\n const sendTelemetry = useSendTelemetry();\n\n const _onLoad = useCallback((pagination) => {\n setLoading(true);\n\n return AuthzRolesDomain.loadUsersForRole(id, name, pagination)\n .then((paginatedRoles) => {\n setLoading(false);\n\n return paginatedRoles;\n });\n }, [id, name]);\n\n const _onAssignUser = (newUsers: Immutable.Set) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.ROLES.USER_ASSIGNED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'role-edit',\n app_action_value: 'assign-user',\n });\n\n return AuthzRolesDomain.addMembers(id,\n newUsers.map((u) => u.username).toSet()).then(() => _onLoad(DEFAULT_PAGINATION)\n .then((result) => {\n setPaginatedUsers(result);\n\n return result;\n }));\n };\n\n const _onUnassignUser = (user) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.ROLES.USER_UNASSIGNED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'role-edit',\n app_action_value: 'unassign-user',\n });\n\n if ((role.name === 'Reader' || role.name === 'Admin')\n && (!user.roles.includes('Reader') || !user.roles.includes('Admin'))) {\n setErrors(`User '${user.name}' needs at least a Reader or Admin role.`);\n _onLoad(DEFAULT_PAGINATION).then(setPaginatedUsers);\n\n return;\n }\n\n setErrors(undefined);\n\n AuthzRolesDomain.removeMember(id, user.name).then(() => {\n _onLoad(DEFAULT_PAGINATION).then(setPaginatedUsers);\n });\n };\n\n return (\n \n

Assign Users

\n \n \n \n \n {errors}\n \n

Selected Users

\n \n \n \n
\n );\n};\n\nexport default UsersSection;\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 Role from 'logic/roles/Role';\nimport { EnterprisePluginNotFound } from 'components/common';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\ntype Props = {\n role: Role,\n};\n\nconst TeamsSection = ({ role }: Props) => {\n const teamsPlugin = PluginStore.exports('teams');\n const RoleTeamsAssignment = teamsPlugin?.[0]?.RoleTeamsAssignment;\n\n return (\n \n {RoleTeamsAssignment ? : }\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 */\n\nimport RoleEdit from './RoleEdit';\n\nexport default RoleEdit;\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 { Spinner, IfPermitted } from 'components/common';\nimport type Role from 'logic/roles/Role';\n\nimport UsersSection from './UsersSection';\nimport TeamsSection from './TeamsSection';\n\nimport ProfileSection from '../RoleDetails/ProfileSection';\nimport SectionGrid from '../../common/Section/SectionGrid';\n\ntype Props = {\n role: Role | null | undefined,\n};\n\nconst RoleEdit = ({ role }: Props) => {\n if (!role) {\n return ;\n }\n\n return (\n \n
\n \n
\n
\n \n \n \n \n
\n
\n );\n};\n\nexport default RoleEdit;\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 withParams from 'routing/withParams';\nimport { LinkContainer } from 'components/common/router';\nimport RoleEdit from 'components/roles/RoleEdit';\nimport Routes from 'routing/Routes';\nimport RoleActionLinks from 'components/roles/navigation/RoleActionLinks';\nimport { Button } from 'components/bootstrap';\nimport { AuthzRolesActions } from 'stores/roles/AuthzRolesStore';\nimport DocsHelper from 'util/DocsHelper';\nimport { PageHeader, DocumentTitle } from 'components/common';\nimport type Role from 'logic/roles/Role';\n\ntype Props = {\n params: {\n roleId: string,\n },\n};\n\nconst PageTitle = ({ name }: { name: string | undefined | null }) => (\n <>\n Edit Role {name && (\n <>\n - {name}\n \n )}\n \n);\n\nconst RoleEditPage = ({ params }: Props) => {\n const [loadedRole, setLoadedRole] = useState();\n const roleId = params?.roleId;\n\n useEffect(() => {\n AuthzRolesActions.load(roleId).then(setLoadedRole);\n }, [roleId]);\n\n return (\n \n }\n actions={}\n topActions={(\n \n \n \n )}\n documentationLink={{\n title: 'Permissions documentation',\n path: DocsHelper.PAGES.USERS_ROLES,\n }}>\n \n You can assign the role to users.\n \n \n \n \n );\n};\n\nexport default withParams(RoleEditPage);\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","/*\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 Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\ntype InternalState = {\n id: string,\n name: string,\n description: string,\n permissions: Immutable.Set,\n readOnly: boolean,\n};\n\nexport type RoleJSON = {\n id: string,\n name: string,\n description: string,\n permissions: Immutable.Set,\n read_only: boolean,\n};\n\nexport default class Role {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n name: $PropertyType,\n description: $PropertyType,\n permissions: $PropertyType,\n readOnly: $PropertyType,\n ) {\n this._value = {\n id,\n name,\n description,\n permissions,\n readOnly,\n };\n }\n\n get id() {\n return this._value.id;\n }\n\n get name() {\n return this._value.name;\n }\n\n get description() {\n return this._value.description;\n }\n\n get permissions() {\n return this._value.permissions;\n }\n\n get readOnly() {\n return this._value.readOnly;\n }\n\n toBuilder() {\n const {\n id,\n name,\n description,\n permissions,\n readOnly,\n } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({\n id,\n name,\n description,\n permissions,\n readOnly,\n }));\n }\n\n static create(\n id: $PropertyType,\n name: $PropertyType,\n description: $PropertyType,\n permissions: $PropertyType,\n readOnly: $PropertyType,\n ) {\n return new Role(\n id,\n name,\n description,\n permissions,\n readOnly,\n );\n }\n\n toJSON() {\n const {\n id,\n name,\n description,\n permissions,\n readOnly,\n } = this._value;\n\n return {\n id,\n name,\n description,\n permissions,\n read_only: readOnly,\n };\n }\n\n static fromJSON(value: RoleJSON) {\n const {\n id,\n name,\n description,\n permissions,\n read_only: readOnly,\n } = value;\n\n return Role.create(\n id,\n name,\n description,\n permissions,\n readOnly,\n );\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\ntype BuilderState = Immutable.Map;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n id(value: $PropertyType) {\n return new Builder(this.value.set('id', value));\n }\n\n name(value: $PropertyType) {\n return new Builder(this.value.set('name', value));\n }\n\n description(value: $PropertyType) {\n return new Builder(this.value.set('description', value));\n }\n\n permissions(value: $PropertyType) {\n return new Builder(this.value.set('permissions', value));\n }\n\n readOnly(value: $PropertyType) {\n return new Builder(this.value.set('readOnly', value));\n }\n\n build() {\n const {\n id,\n name,\n description,\n permissions,\n readOnly,\n } = this.value.toObject();\n\n return new Role(\n id,\n name,\n description,\n permissions,\n readOnly,\n );\n }\n}\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 Reflux from 'reflux';\nimport type * as Immutable from 'immutable';\n\nimport type Role from 'logic/roles/Role';\nimport type UserOverview from 'logic/users/UserOverview';\nimport { singletonActions } from 'logic/singleton';\nimport type { PaginatedList, Pagination } from 'stores/PaginationTypes';\n\nexport type UserContext = {\n id: string,\n username: string,\n};\n\nexport type RoleContext = {\n users: { [key: string]: UserContext[] },\n};\n\nexport type PaginatedRoles = PaginatedList & {\n context: RoleContext,\n};\nexport type PaginatedUsers = PaginatedList;\n\nexport type ActionsType = {\n load: (roleId: string) => Promise,\n delete: (roleId: string, roleName: string) => Promise,\n addMembers: (roleId: string, usernames: Immutable.Set) => Promise,\n removeMember: (roleId: string, username: string) => Promise,\n loadUsersForRole: (roleId: string, roleName: string, pagination: Pagination) => Promise,\n loadRolesForUser: (username: string, pagination: Pagination) => Promise,\n loadRolesPaginated: (pagination: Pagination) => Promise,\n};\n\nconst AuthzRolesActions = singletonActions(\n 'AuthzRoles',\n () => Reflux.createActions({\n load: { asyncResult: true },\n delete: { asyncResult: true },\n addMembers: { asyncResult: true },\n removeMember: { asyncResult: true },\n loadUsersForRole: { asyncResult: true },\n loadRolesForUser: { asyncResult: true },\n loadRolesPaginated: { asyncResult: true },\n }),\n);\n\nexport default AuthzRolesActions;\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 Reflux from 'reflux';\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport type { PaginatedUsersResponse } from 'stores/users/UsersStore';\nimport type { Store } from 'stores/StoreTypes';\nimport fetch from 'logic/rest/FetchProvider';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport { qualifyUrl } from 'util/URLUtils';\nimport { singletonStore } from 'logic/singleton';\nimport PaginationURL from 'util/PaginationURL';\nimport Role from 'logic/roles/Role';\nimport type { RoleJSON } from 'logic/roles/Role';\nimport type { PaginatedRoles, PaginatedUsers, RoleContext } from 'actions/roles/AuthzRolesActions';\nimport AuthzRolesActions from 'actions/roles/AuthzRolesActions';\nimport UserOverview from 'logic/users/UserOverview';\nimport type { PaginatedListJSON, Pagination } from 'stores/PaginationTypes';\n\nexport type PaginatedRolesResponse = PaginatedListJSON & {\n roles: Array,\n context?: RoleContext,\n};\n\nconst _responseToPaginatedList = ({\n count,\n total,\n page,\n per_page,\n query,\n roles = [],\n context = { users: undefined },\n}: PaginatedRolesResponse) => ({\n list: Immutable.List(roles.map((r) => Role.fromJSON(r))),\n pagination: {\n query,\n page,\n perPage: per_page,\n count,\n total,\n },\n context,\n});\n\nconst _responseToPaginatedUserList = ({ count, total, page, per_page, query, users }: PaginatedUsersResponse) => ({\n list: Immutable.List(users.map((u) => UserOverview.fromJSON(u))),\n pagination: {\n page,\n perPage: per_page,\n query,\n count,\n total,\n },\n});\n\nconst encodeApiUrl = (apiRoute: (...args: Array) => { url: string }, uriParams: Array = []): string => {\n const encodedUriParams = uriParams.map((param) => encodeURIComponent(param));\n\n return apiRoute(...encodedUriParams).url;\n};\n\nconst AuthzRolesStore: Store<{}> = singletonStore(\n 'AuthzRoles',\n () => Reflux.createStore({\n listenables: [AuthzRolesActions],\n\n load(roleId: $PropertyType): Promise {\n const url = qualifyUrl(encodeApiUrl(ApiRoutes.AuthzRolesController.load, [roleId]));\n const promise = fetch('GET', url).then(Role.fromJSON);\n\n AuthzRolesActions.load.promise(promise);\n\n return promise;\n },\n\n delete(roleId: string): Promise {\n const url = qualifyUrl(encodeApiUrl(ApiRoutes.AuthzRolesController.delete, [roleId]));\n const promise = fetch('DELETE', url);\n\n AuthzRolesActions.delete.promise(promise);\n\n return promise;\n },\n\n addMembers(roleId: string, usernames: Immutable.Set): Promise {\n const url = encodeApiUrl(ApiRoutes.AuthzRolesController.addMembers, [roleId]);\n const promise = fetch('PUT', qualifyUrl(url), usernames.toArray());\n\n AuthzRolesActions.addMembers.promise(promise);\n\n return promise;\n },\n\n removeMember(roleId: string, username: string): Promise {\n const url = encodeApiUrl(ApiRoutes.AuthzRolesController.removeMember, [roleId, username]);\n const promise = fetch('DELETE', qualifyUrl(url));\n\n AuthzRolesActions.removeMember.promise(promise);\n\n return promise;\n },\n\n loadUsersForRole(roleId: string, _roleName: string, {\n page,\n perPage,\n query,\n }: Pagination): Promise {\n const apiUrl = encodeApiUrl(ApiRoutes.AuthzRolesController.loadUsersForRole, [roleId]);\n const url = PaginationURL(apiUrl, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then(_responseToPaginatedUserList);\n\n AuthzRolesActions.loadUsersForRole.promise(promise);\n\n return promise;\n },\n\n loadRolesForUser(username: string, { page, perPage, query }: Pagination): Promise {\n const apiUrl = encodeApiUrl(ApiRoutes.AuthzRolesController.loadRolesForUser, [username]);\n const url = PaginationURL(apiUrl, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then(_responseToPaginatedList);\n\n AuthzRolesActions.loadRolesForUser.promise(promise);\n\n return promise;\n },\n\n loadRolesPaginated({ page, perPage, query }: Pagination): Promise {\n const apiUrl = encodeApiUrl(ApiRoutes.AuthzRolesController.list);\n const url = PaginationURL(apiUrl, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then(_responseToPaginatedList);\n\n AuthzRolesActions.loadRolesPaginated.promise(promise);\n\n return promise;\n },\n }),\n);\n\nexport { AuthzRolesActions, AuthzRolesStore };\n"],"names":["name","description","roleId","load","error","deleteAction","_roleId","roleName","addMembers","usernames","removeMember","username","loadUsersForRole","loadRolesForUser","loadRolesPaginated","SubmitButton","FormElements","Errors","theme","SelectOption","StyledSelect","_renderOption","label","_isRequired","field","value","role","onSubmit","users","setUsers","options","setOptions","setError","_loadUsers","getUnlimited","UsersDomain","paginatedUsers","resultUsers","u","onUpdate","user","resetForm","newUsers","userOverview","newUser","unlistenAddMember","unlistenRemoveMember","isSubmitting","isValid","errors","onChange","fieldKey","Container","id","loading","setLoading","setPaginatedUsers","setErrors","pathname","useLocation","sendTelemetry","useSendTelemetry","_onLoad","pagination","AuthzRolesDomain","paginatedRoles","_onAssignUser","result","_onUnassignUser","SectionComponent","teamsPlugin","RoleTeamsAssignment","SectionGrid","ProfileSection","PageTitle","RoleEditPage","params","loadedRole","setLoadedRole","RoleActionLinks","Routes","DocsHelper","withParams","Component","props","Role","permissions","readOnly","Builder","singleton","_responseToPaginatedList","count","total","page","per_page","query","roles","context","r","_responseToPaginatedUserList","UserOverview","encodeApiUrl","apiRoute","uriParams","encodedUriParams","param","AuthzRolesStore","url","ApiRoutes","promise","_roleName","perPage","apiUrl","PaginationURL"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy