web-interface.assets.1255d548-6712.23ecb7d70611713d3e76.js.map Maven / Gradle / Ivy
{"version":3,"file":"1255d548-6712.23ecb7d70611713d3e76.js","mappings":"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","sources":["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/logic/users/UserOverview.ts","webpack://graylog-web-interface/./src/components/roles/RoleDetails/TeamsSection.tsx","webpack://graylog-web-interface/./src/components/roles/RoleDetails/UsersSection.tsx","webpack://graylog-web-interface/./src/components/roles/RoleDetails/index.tsx","webpack://graylog-web-interface/./src/components/roles/RoleDetails/RoleDetails.tsx","webpack://graylog-web-interface/./src/pages/RoleDetailsPage.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 * 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 type { $PropertyType } from 'utility-types';\nimport * as Immutable from 'immutable';\n\nexport type AccountStatus = 'enabled' | 'disabled' | 'deleted';\n\nexport type UserOverviewJSON = {\n id: string;\n username: string;\n full_name: string;\n email: string;\n external_user: boolean | null | undefined;\n roles: Array;\n read_only: boolean | null | undefined;\n session_active: boolean | null | undefined;\n client_address: string;\n last_activity: string | null | undefined;\n enabled: boolean;\n auth_service_id: string;\n auth_service_uid: string;\n auth_service_enabled: boolean;\n account_status: AccountStatus;\n};\n\ntype InternalState = {\n id: string;\n username: string;\n fullName: string;\n email: string;\n roles: Immutable.Set;\n readOnly: boolean;\n external: boolean;\n sessionActive: boolean;\n clientAddress: string;\n lastActivity: string | null | undefined;\n enabled: boolean;\n authServiceId: string;\n authServiceUid: string;\n authServiceEnabled: boolean;\n accountStatus: AccountStatus;\n};\n\nexport default class UserOverview {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n username: $PropertyType,\n fullName: $PropertyType,\n email: $PropertyType,\n roles: $PropertyType,\n readOnly: $PropertyType,\n external: $PropertyType,\n sessionActive: $PropertyType,\n clientAddress: $PropertyType,\n lastActivity: $PropertyType,\n enabled: $PropertyType,\n authServiceId: $PropertyType,\n authServiceUid: $PropertyType,\n authServiceEnabled: $PropertyType,\n accountStatus: $PropertyType,\n ) {\n this._value = {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n };\n }\n\n get id() {\n return this._value.id;\n }\n\n get username() {\n return this._value.username;\n }\n\n get name() {\n return this._value.username;\n }\n\n get fullName() {\n return this._value.fullName;\n }\n\n get description() {\n return this._value.fullName;\n }\n\n get email() {\n return this._value.email;\n }\n\n get roles() {\n return this._value.roles;\n }\n\n get readOnly() {\n return this._value.readOnly;\n }\n\n get external() {\n return this._value.external;\n }\n\n get sessionActive() {\n return this._value.sessionActive;\n }\n\n get clientAddress() {\n return this._value.clientAddress;\n }\n\n get lastActivity() {\n return this._value.lastActivity;\n }\n\n get enabled() {\n return this._value.enabled;\n }\n\n get authServiceId() {\n return this._value.authServiceId;\n }\n\n get authServiceUid() {\n return this._value.authServiceUid;\n }\n\n get authServiceEnabled() {\n return this._value.authServiceEnabled;\n }\n\n get accountStatus() {\n return this._value.accountStatus;\n }\n\n toBuilder() {\n const {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n }));\n }\n\n static create(\n id: $PropertyType,\n username: $PropertyType,\n fullName: $PropertyType,\n email: $PropertyType,\n roles: $PropertyType,\n readOnly: $PropertyType,\n external: $PropertyType,\n sessionActive: $PropertyType,\n clientAddress: $PropertyType,\n lastActivity: $PropertyType,\n enabled: $PropertyType,\n authServiceId: $PropertyType,\n authServiceUid: $PropertyType,\n authServiceEnabled: $PropertyType,\n accountStatus: $PropertyType,\n ) {\n return new UserOverview(\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n );\n }\n\n toJSON(): UserOverviewJSON {\n const {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n } = this._value;\n\n return {\n id,\n username,\n full_name: fullName,\n email,\n roles: roles.toArray(),\n read_only: readOnly,\n external_user: external,\n session_active: sessionActive,\n client_address: clientAddress,\n last_activity: lastActivity,\n enabled,\n auth_service_id: authServiceId,\n auth_service_uid: authServiceUid,\n auth_service_enabled: authServiceEnabled,\n account_status: accountStatus,\n };\n }\n\n static fromJSON(value: UserOverviewJSON) {\n const {\n id,\n username,\n full_name: fullName,\n email,\n roles,\n read_only: readOnly,\n external_user: external,\n session_active: sessionActive,\n client_address: clientAddress,\n last_activity: lastActivity,\n enabled,\n auth_service_id: authServiceId,\n auth_service_uid: authServiceUid,\n auth_service_enabled: authServiceEnabled,\n account_status: accountStatus,\n } = value;\n\n return UserOverview.create(id,\n username,\n fullName,\n email,\n Immutable.Set(roles),\n readOnly ?? false,\n external ?? false,\n sessionActive ?? false,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus);\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 username(value: $PropertyType) {\n return new Builder(this.value.set('username', value));\n }\n\n fullName(value: $PropertyType) {\n return new Builder(this.value.set('fullName', value));\n }\n\n email(value: $PropertyType) {\n return new Builder(this.value.set('email', value));\n }\n\n roles(value: $PropertyType) {\n return new Builder(this.value.set('roles', value));\n }\n\n readOnly(value: $PropertyType) {\n return new Builder(this.value.set('readOnly', value));\n }\n\n external(value: $PropertyType) {\n return new Builder(this.value.set('external', value));\n }\n\n sessionActive(value: $PropertyType) {\n return new Builder(this.value.set('sessionActive', value));\n }\n\n clientAddress(value: $PropertyType) {\n return new Builder(this.value.set('clientAddress', value));\n }\n\n lastActivity(value: $PropertyType) {\n return new Builder(this.value.set('lastActivity', value));\n }\n\n enabled(value: $PropertyType) {\n return new Builder(this.value.set('enabled', value));\n }\n\n authServiceId(value: $PropertyType) {\n return new Builder(this.value.set('authServiceId', value));\n }\n\n authServiceUid(value: $PropertyType) {\n return new Builder(this.value.set('authServiceUid', value));\n }\n\n authServiceEnabled(value: $PropertyType) {\n return new Builder(this.value.set('authServiceEnabled', value));\n }\n\n accountStatus(value: $PropertyType) {\n return new Builder(this.value.set('accountStatus', value));\n }\n\n build() {\n const {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n } = this.value.toObject();\n\n return new UserOverview(\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\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 * 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\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 */\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\n\nimport AuthzRolesDomain from 'domainActions/roles/AuthzRolesDomain';\nimport { PaginatedItemOverview } from 'components/common';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport type Role from 'logic/roles/Role';\n\ntype Props = {\n role: Role,\n};\n\nconst UsersSection = ({ role: { id, name } }: Props) => {\n const [loading, setLoading] = useState(false);\n\n const _onLoad = useCallback((pagination) => {\n setLoading(true);\n\n return AuthzRolesDomain.loadUsersForRole(id, name, pagination).then((paginatedRoles) => {\n setLoading(false);\n\n return paginatedRoles;\n });\n }, [id, name]);\n\n return (\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 RoleDetails from './RoleDetails';\n\nexport default RoleDetails;\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 } from 'components/common';\nimport SectionGrid from 'components/common/Section/SectionGrid';\nimport type Role from 'logic/roles/Role';\n\nimport TeamsSection from './TeamsSection';\nimport ProfileSection from './ProfileSection';\nimport UsersSection from './UsersSection';\n\ntype Props = {\n role: Role | null | undefined,\n};\n\nconst RoleDetails = ({ role }: Props) => {\n if (!role) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default RoleDetails;\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 AuthzRolesDomain from 'domainActions/roles/AuthzRolesDomain';\nimport RoleDetails from 'components/roles/RoleDetails';\nimport RoleActionLinks from 'components/roles/navigation/RoleActionLinks';\nimport DocsHelper from 'util/DocsHelper';\nimport { PageHeader, DocumentTitle } from 'components/common';\nimport { Button } from 'components/bootstrap';\nimport Routes from 'routing/Routes';\nimport type Role from 'logic/roles/Role';\n\ntype Props = {\n params: {\n roleId: string,\n },\n};\n\nconst PageTitle = ({ fullName }: { fullName: string | undefined | null }) => (\n <>\n Role Details {fullName && (\n <>\n - {fullName}\n >\n )}\n >\n);\n\nconst RoleDetailsPage = ({ params }: Props) => {\n const [loadedRole, setLoadedRole] = useState();\n const roleId = params?.roleId;\n\n useEffect(() => {\n AuthzRolesDomain.load(roleId).then(setLoadedRole);\n }, [roleId]);\n\n return (\n \n }\n actions={ }\n documentationLink={{\n title: 'Permissions documentation',\n path: DocsHelper.PAGES.USERS_ROLES,\n }}\n topActions={(\n \n \n \n )}>\n \n Overview of details like name, description and assigned users.\n \n \n \n \n );\n};\n\nexport default withParams(RoleDetailsPage);\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","UserOverview","id","fullName","email","roles","readOnly","external","sessionActive","clientAddress","lastActivity","enabled","authServiceId","authServiceUid","authServiceEnabled","accountStatus","Builder","value","role","teamsPlugin","RoleTeamsAssignment","SectionComponent","loading","setLoading","_onLoad","pagination","AuthzRolesDomain","paginatedRoles","SectionGrid","ProfileSection","PageTitle","RoleDetailsPage","params","loadedRole","setLoadedRole","RoleActionLinks","DocsHelper","Routes","withParams","Component","props","Role","permissions","singleton","_responseToPaginatedList","count","total","page","per_page","query","context","r","_responseToPaginatedUserList","users","u","encodeApiUrl","apiRoute","uriParams","encodedUriParams","param","AuthzRolesStore","url","ApiRoutes","promise","_roleName","perPage","apiUrl","PaginationURL"],"sourceRoot":""}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy