Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
web-interface.assets.57e33c6c-2.11b9f72925818240e61d.js.map Maven / Gradle / Ivy
{"version":3,"sources":["webpack:///./src/logic/authentication/AuthenticationBackend.ts","webpack:///./src/stores/authentication/AuthenticationStore.ts","webpack:///./src/util/AuthenticationService.ts","webpack:///./src/actions/authentication/AuthenticationActions.ts","webpack:///./src/logic/users/UserOverview.ts","webpack:///./src/domainActions/authentication/AuthenticationDomain.tsx"],"names":["AuthenticationBackend","id","title","description","defaultRoles","config","this","_value","Builder","Immutable","formattedConfig","authService","getAuthServicePlugin","type","configToJson","default_roles","toJS","value","configFromJson","set","toObject","AuthenticationStore","singletonStore","Reflux","createStore","listenables","AuthenticationActions","getInitialState","authenticators","create","authBackend","url","qualifyUrl","ApiRoutes","AuthenticationController","promise","fetch","then","result","backend","fromJSON","load","backendId","encodeURIComponent","loadActive","context","backendsTotal","backends_total","update","payload","testConnection","testLogin","setActiveBackend","updateConfiguration","active_backend","loadBackendsPaginated","page","perPage","query","PaginationURL","servicesPaginated","response","activeBackend","list","backends","map","pagination","per_page","count","total","loadUsersPaginated","authBackendId","users","user","UserOverview","loadActiveBackendType","build","json","throwError","authServices","PluginStore","exports","find","service","name","Error","getEnterpriseGroupSyncPlugin","authGroupSyncPlugins","getEnterpriseAuthenticationPlugin","authPlugins","singletonActions","createActions","asyncResult","delete","username","fullName","email","roles","readOnly","external","sessionActive","clientAddress","lastActivity","enabled","authServiceId","authServiceUid","accountStatus","full_name","toArray","read_only","external_user","session_active","client_address","last_activity","auth_service_id","auth_service_uid","account_status","notifyingAction","action","success","message","error","notFoundRedirect","deleteBackend","authBackendTitle"],"mappings":"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","file":"57e33c6c-2.11b9f72925818240e61d.js","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 Immutable from 'immutable';\nimport { $PropertyType } from 'utility-types';\nimport { DirectoryServiceAuthenticationService } from 'components/authentication/types';\n\nimport { getAuthServicePlugin } from 'util/AuthenticationService';\nimport { DirectoryServiceBackendConfig } from 'logic/authentication/directoryServices/types';\nimport { OktaBackendConfig } from 'logic/authentication/okta/types';\n\ntype InternalState = {\n id: string,\n title: string,\n description: string,\n defaultRoles: Immutable.List,\n config: DirectoryServiceBackendConfig | OktaBackendConfig,\n};\n\ntype TypedConfig = {\n type: string,\n};\n\nexport type AuthenticationBackendJSON = {\n id: string,\n title: string,\n description: string,\n default_roles: Array,\n config: DirectoryServiceBackendConfig | OktaBackendConfig,\n};\n\nconst configFromJson = (config: $PropertyType) => {\n const authService = getAuthServicePlugin((config as TypedConfig).type, true);\n\n if (authService && typeof authService.configFromJson === 'function') {\n return (authService as DirectoryServiceAuthenticationService).configFromJson(config);\n }\n\n return config;\n};\n\nconst configToJson = (config: $PropertyType) => {\n const authService = getAuthServicePlugin((config as TypedConfig).type, true);\n\n if (authService && typeof authService.configToJson === 'function') {\n return authService.configToJson(config);\n }\n\n return config;\n};\n\nexport default class AuthenticationBackend {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n title: $PropertyType,\n description: $PropertyType,\n defaultRoles: $PropertyType,\n config: $PropertyType,\n ) {\n this._value = {\n id,\n title,\n description,\n defaultRoles,\n config,\n };\n }\n\n get id(): $PropertyType {\n return this._value.id;\n }\n\n get title(): $PropertyType {\n return this._value.title;\n }\n\n get description(): $PropertyType {\n return this._value.description;\n }\n\n get defaultRoles(): $PropertyType {\n return this._value.defaultRoles;\n }\n\n get config(): $PropertyType {\n return this._value.config;\n }\n\n toBuilder(): Builder {\n const {\n id,\n title,\n description,\n defaultRoles,\n config,\n } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({\n id,\n title,\n description,\n defaultRoles,\n config,\n }));\n }\n\n toJSON() {\n const {\n id,\n title,\n description,\n defaultRoles = Immutable.List(),\n config,\n } = this._value;\n\n const formattedConfig = configToJson(config);\n\n return {\n id,\n title,\n description,\n default_roles: defaultRoles.toJS(),\n config: formattedConfig,\n };\n }\n\n static fromJSON(value: AuthenticationBackendJSON) {\n const {\n id,\n title,\n description,\n default_roles: defaultRoles,\n config,\n } = value;\n\n const formattedConfig = configFromJson(config);\n\n return new AuthenticationBackend(\n id,\n title,\n description,\n Immutable.List(defaultRoles),\n formattedConfig,\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 InternalBuilderState = Immutable.Map;\n\nclass Builder {\n value: InternalBuilderState;\n\n constructor(value: InternalBuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n id(value: $PropertyType): Builder {\n return new Builder(this.value.set('id', value));\n }\n\n title(value: $PropertyType): Builder {\n return new Builder(this.value.set('title', value));\n }\n\n description(value: $PropertyType): Builder {\n return new Builder(this.value.set('description', value));\n }\n\n defaultRoles(value: $PropertyType): Builder {\n return new Builder(this.value.set('defaultRoles', value));\n }\n\n config(value: $PropertyType): Builder {\n return new Builder(this.value.set('config', value));\n }\n\n build(): AuthenticationBackend {\n const {\n id,\n title,\n description,\n defaultRoles,\n config,\n } = this.value.toObject();\n\n return new AuthenticationBackend(\n id,\n title,\n description,\n defaultRoles,\n config,\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 * as Immutable from 'immutable';\nimport { $PropertyType } from 'utility-types/dist/utility-types';\n\nimport AuthenticationBackend from 'logic/authentication/AuthenticationBackend';\nimport type { Store } from 'stores/StoreTypes';\nimport { qualifyUrl } from 'util/URLUtils';\nimport fetch, { Builder } from 'logic/rest/FetchProvider';\nimport { singletonStore } from 'views/logic/singleton';\nimport AuthenticationActions from 'actions/authentication/AuthenticationActions';\nimport PaginationURL from 'util/PaginationURL';\nimport type {\n AuthenticationBackendCreate,\n AuthenticationBackendUpdate,\n ConnectionTestPayload,\n ConnectionTestResult,\n LoadActiveResponse,\n LoadResponse,\n LoginTestPayload,\n LoginTestResult,\n PaginatedBackends,\n} from 'actions/authentication/AuthenticationActions';\nimport type { PaginatedUsers } from 'actions/users/UsersActions';\nimport type { PaginatedResponseType, Pagination } from 'stores/PaginationTypes';\nimport type { AuthenticationBackendJSON } from 'logic/authentication/AuthenticationBackend';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport UserOverview, { UserOverviewJSON } from 'logic/users/UserOverview';\n\ntype PaginatedBackendsResponse = PaginatedResponseType & {\n context: {\n active_backend: AuthenticationBackendJSON | null | undefined,\n },\n backends: Array,\n};\n\ntype PaginatedUsersResponse = PaginatedResponseType & {\n users: Array,\n};\n\nconst AuthenticationStore: Store<{ authenticators: any }> = singletonStore(\n 'Authentication',\n () => Reflux.createStore({\n listenables: [AuthenticationActions],\n\n getInitialState() {\n return {\n authenticators: null,\n };\n },\n\n create(authBackend: AuthenticationBackendCreate): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.create().url);\n const promise = fetch('POST', url, authBackend).then((result) => (result ? {\n backend: AuthenticationBackend.fromJSON(result.backend),\n } : null));\n AuthenticationActions.create.promise(promise);\n\n return promise;\n },\n\n load(backendId: string): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.load(encodeURIComponent(backendId)).url);\n const promise = fetch('GET', url).then((result) => (result ? {\n backend: AuthenticationBackend.fromJSON(result.backend),\n } : null));\n\n AuthenticationActions.load.promise(promise);\n\n return promise;\n },\n\n loadActive(): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.loadActive().url);\n const promise = fetch('GET', url).then((result) => (result ? {\n backend: result.backend ? AuthenticationBackend.fromJSON(result.backend) : null,\n context: { backendsTotal: result.context.backends_total },\n } : null));\n\n AuthenticationActions.loadActive.promise(promise);\n\n return promise;\n },\n\n update(backendId: null | undefined | $PropertyType, payload: AuthenticationBackendUpdate): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.update(backendId).url);\n const promise = fetch('PUT', url, payload).then((result) => (result ? {\n backend: AuthenticationBackend.fromJSON(result.backend),\n } : null));\n\n AuthenticationActions.update.promise(promise);\n\n return promise;\n },\n\n delete(backendId: null | undefined | $PropertyType): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.delete(backendId).url);\n const promise = fetch('DELETE', url);\n AuthenticationActions.delete.promise(promise);\n\n return promise;\n },\n\n testConnection(payload: ConnectionTestPayload): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.testConnection().url);\n const promise = fetch('POST', url, payload);\n AuthenticationActions.testConnection.promise(promise);\n\n return promise;\n },\n\n testLogin(payload: LoginTestPayload): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.testLogin().url);\n const promise = fetch('POST', url, payload);\n AuthenticationActions.testLogin.promise(promise);\n\n return promise;\n },\n\n setActiveBackend(backendId: null | undefined | $PropertyType): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.updateConfiguration().url);\n const promise = fetch('POST', url, { active_backend: backendId });\n AuthenticationActions.setActiveBackend.promise(promise);\n\n return promise;\n },\n\n loadBackendsPaginated({ page, perPage, query }: Pagination): Promise {\n const url = PaginationURL(ApiRoutes.AuthenticationController.servicesPaginated().url, page, perPage, query);\n const promise = fetch('GET', qualifyUrl(url))\n .then((response: PaginatedBackendsResponse) => ({\n context: {\n activeBackend: response.context.active_backend,\n },\n list: Immutable.List(response.backends.map((backend) => AuthenticationBackend.fromJSON(backend))),\n pagination: {\n page: response.page,\n perPage: response.per_page,\n query: response.query,\n count: response.count,\n total: response.total,\n },\n }));\n\n AuthenticationActions.loadBackendsPaginated.promise(promise);\n\n return promise;\n },\n\n loadUsersPaginated(authBackendId, { page, perPage, query }: Pagination): Promise {\n const url = PaginationURL(ApiRoutes.AuthenticationController.loadUsersPaginated(authBackendId).url, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then((response: PaginatedUsersResponse) => ({\n list: Immutable.List(response.users.map((user) => UserOverview.fromJSON(user))),\n pagination: {\n page: response.page,\n perPage: response.per_page,\n query: response.query,\n count: response.count,\n total: response.total,\n },\n }));\n\n AuthenticationActions.loadUsersPaginated.promise(promise);\n\n return promise;\n },\n\n loadActiveBackendType(): Promise {\n const url = qualifyUrl(ApiRoutes.AuthenticationController.loadActiveBackendType().url);\n\n // no authentication required\n const promise = new Builder('GET', url)\n .build()\n .then((response) => response.json())\n .then((result: { backend: string | undefined }) => {\n return result.backend;\n });\n\n AuthenticationActions.loadActiveBackendType.promise(promise);\n\n return promise;\n },\n }),\n);\n\nexport { AuthenticationActions, AuthenticationStore };\n\nexport default AuthenticationStore;\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 { PluginStore } from 'graylog-web-plugin/plugin';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getAuthServicePlugin = (type: string, throwError: boolean = false) => {\n const authServices = PluginStore.exports('authentication.services') || [];\n const authService = authServices.find((service) => service.name === type);\n\n if (!authService && throwError) {\n throw new Error(`Authentication service with type \"${type}\" not found.`);\n }\n\n return authService;\n};\n\nexport const getEnterpriseGroupSyncPlugin = () => {\n const authGroupSyncPlugins = PluginStore.exports('authentication.enterprise.directoryServices.groupSync');\n\n return authGroupSyncPlugins?.[0];\n};\n\nexport const getEnterpriseAuthenticationPlugin = () => {\n const authPlugins = PluginStore.exports('authentication.enterprise');\n\n return authPlugins?.[0];\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 { $PropertyType } from 'utility-types';\n\nimport AuthenticationBackend, { AuthenticationBackendJSON } from 'logic/authentication/AuthenticationBackend';\nimport { singletonActions } from 'views/logic/singleton';\nimport { RefluxActions } from 'stores/StoreTypes';\nimport { Pagination, PaginatedList } from 'stores/PaginationTypes';\nimport { PaginatedUsers } from 'actions/users/UsersActions';\n\nexport type AuthenticationBackendCreate = {\n title: $PropertyType,\n description: $PropertyType,\n config: {\n type: string,\n },\n};\n\nexport type AuthenticationBackendUpdate = {\n id: $PropertyType,\n title: $PropertyType,\n description: $PropertyType,\n config: {\n type: string,\n },\n};\n\nexport type PaginatedBackends = PaginatedList & {\n context: {\n activeBackend: AuthenticationBackend | undefined | null,\n },\n};\n\nexport type ConnectionTestPayload = {\n backend_configuration: AuthenticationBackendCreate,\n backend_id: string | undefined | null,\n};\nexport type ConnectionTestResult = {\n success: boolean,\n message: string,\n errors: Array,\n};\nexport type LoginTestPayload = {\n backend_id: string | undefined | null,\n backend_configuration: AuthenticationBackendCreate,\n user_login: {\n username: string,\n password: string,\n },\n};\n\nexport type LoginTestResult = {\n success: boolean,\n message: string,\n errors: Array,\n result: {\n user_exists: boolean,\n login_success: boolean,\n user_details: {\n dn: string,\n entryUUID: string,\n uid: string,\n cn: string,\n email: string,\n },\n },\n};\n\nexport type LoadResponse = {\n backend: AuthenticationBackend | undefined | null,\n};\n\nexport type LoadActiveResponse = LoadResponse & {\n context: {\n backendsTotal: number,\n },\n};\n\nexport type ActionsType = {\n create: (AuthenticationBackendCreate) => Promise,\n delete: (authBackendId: $PropertyType | undefined | null, authBackendTitle: $PropertyType) => Promise,\n load: (id: string) => Promise,\n loadActive: () => Promise,\n loadBackendsPaginated: (pagination: Pagination) => Promise,\n loadUsersPaginated: (authBackendId: string, pagination: Pagination) => Promise,\n loadActiveBackendType: () => Promise,\n setActiveBackend: (authBackendId: $PropertyType | undefined | null, authBackendTitle: $PropertyType) => Promise,\n testConnection: (payload: ConnectionTestPayload) => Promise,\n testLogin: (payload: LoginTestPayload) => Promise,\n update: (id: string, AuthenticationBackendUpdate) => Promise,\n};\n\nconst AuthenticationActions: RefluxActions = singletonActions(\n 'Authentication',\n () => Reflux.createActions({\n create: { asyncResult: true },\n delete: { asyncResult: true },\n load: { asyncResult: true },\n loadActive: { asyncResult: true },\n loadBackendsPaginated: { asyncResult: true },\n loadUsersPaginated: { asyncResult: true },\n loadActiveBackendType: { asyncResult: true },\n setActiveBackend: { asyncResult: true },\n testConnection: { asyncResult: true },\n testLogin: { asyncResult: true },\n update: { asyncResult: true },\n }),\n);\n\nexport default AuthenticationActions;\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 { $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 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 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 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 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 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 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 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 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 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 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 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 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 accountStatus);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\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 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 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 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 { AuthenticationActions } from 'stores/authentication/AuthenticationStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst create = notifyingAction({\n action: AuthenticationActions.create,\n success: (authBackend) => ({\n message: `Authentication service \"${authBackend.title} was created successfully`,\n }),\n error: (error, authBackend) => ({\n message: `Creating authentication service \"${authBackend.title}\" failed with status: ${error}`,\n }),\n});\n\nconst load = notifyingAction({\n action: AuthenticationActions.load,\n error: (error, authBackendId) => ({\n message: `Loading authentication service with id \"${authBackendId}\" failed with status: ${error}`,\n }),\n notFoundRedirect: true,\n});\n\nconst loadActive = notifyingAction({\n action: AuthenticationActions.loadActive,\n error: (error) => ({\n message: `Loading active authentication service failed with status: ${error}`,\n }),\n});\n\nconst update = notifyingAction({\n action: AuthenticationActions.update,\n success: (authBackendId, authBackend) => ({\n message: `Authentication service \"${authBackend.title}\" was updated successfully`,\n }),\n error: (error, authBackendId, authBackend) => ({\n message: `Updating authentication service \"${authBackend.title}\" failed with status: ${error}`,\n }),\n});\n\nconst deleteBackend = notifyingAction({\n action: AuthenticationActions.delete,\n success: (authBackendId, authBackendTitle) => ({\n message: `Authentication service \"${authBackendTitle} was deleted successfully`,\n }),\n error: (error, authBackendId, authBackendTitle) => ({\n message: `Deleting authentication service \"${authBackendTitle}\" failed with status: ${error}`,\n }),\n});\n\nconst testConnection = notifyingAction({\n action: AuthenticationActions.testConnection,\n error: (error) => ({\n message: `Connection test failed with status: ${error}`,\n }),\n});\n\nconst testLogin = notifyingAction({\n action: AuthenticationActions.testLogin,\n error: (error) => ({\n message: `Login test failed with status: ${error}`,\n }),\n});\n\nconst setActiveBackend = notifyingAction({\n action: AuthenticationActions.setActiveBackend,\n success: (authBackendId, authBackendTitle) => ({\n message: `Authentication service \"${authBackendTitle} was ${authBackendId ? 'activated' : 'deactivated'} successfully`,\n }),\n error: (error, authBackendId, authBackendTitle) => ({\n message: `Activating authentication service \"${authBackendTitle}\" failed with status: ${error}`,\n }),\n});\n\nconst loadBackendsPaginated = notifyingAction({\n action: AuthenticationActions.loadBackendsPaginated,\n error: (error) => ({\n message: `Loading authentication services failed with status: ${error}`,\n }),\n});\n\nconst loadUsersPaginated = notifyingAction({\n action: AuthenticationActions.loadUsersPaginated,\n error: (authBackendId, error) => ({\n message: `Loading synchronized users for authentication service with id \"${authBackendId}\" failed with status: ${error}`,\n }),\n});\n\nconst loadActiveBackendType = notifyingAction({\n action: AuthenticationActions.loadActiveBackendType,\n error: (error) => ({\n message: `Loading active authentication service type failed with status: ${error}`,\n }),\n});\n\nexport default {\n create,\n update,\n load,\n loadActive,\n delete: deleteBackend,\n testConnection,\n testLogin,\n setActiveBackend,\n loadBackendsPaginated,\n loadUsersPaginated,\n loadActiveBackendType,\n};\n"],"sourceRoot":""}