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

web-interface.assets.6e61897c-0.472622149827c1587209.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"sources":["webpack:///./src/domainActions/users/UsersDomain.ts","webpack:///./src/logic/users/UserOverview.ts","webpack:///./src/actions/users/UsersActions.ts","webpack:///./src/stores/users/UsersStore.ts"],"names":["create","notifyingAction","action","UsersActions","success","user","message","first_name","last_name","error","load","userId","notFoundRedirect","loadByUsername","username","update","payload","fullName","deleteAction","changePassword","createToken","tokenName","loadTokens","deleteToken","tokenId","loadUsers","loadUsersPaginated","setStatus","accountStatus","delete","UserOverview","id","email","roles","readOnly","external","sessionActive","clientAddress","lastActivity","enabled","authServiceId","authServiceUid","this","_value","Builder","Immutable","full_name","toArray","read_only","external_user","session_active","client_address","last_activity","auth_service_id","auth_service_uid","account_status","value","set","toObject","singletonActions","Reflux","createActions","asyncResult","UsersStore","singletonStore","createStore","listenables","url","qualifyUrl","ApiRoutes","UsersApiController","promise","fetch","encodeURIComponent","then","User","fromJSON","request","create_token","list_tokens","response","tokens","delete_token","list","users","map","page","perPage","query","PaginationURL","paginated","adminUser","context","admin_user","undefined","pagination","per_page","count","total"],"mappings":"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","file":"6e61897c-0.472622149827c1587209.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 { UsersActions } from 'stores/users/UsersStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst create = notifyingAction({\n  action: UsersActions.create,\n  success: (user) => ({\n    message: `User \"${user?.first_name} ${user?.last_name}\" was created successfully`,\n  }),\n  error: (error, user) => ({\n    message: `Creating user \"${user?.first_name} ${user?.last_name}\" failed with status: ${error}`,\n  }),\n});\n\nconst load = notifyingAction({\n  action: UsersActions.load,\n  error: (error, userId) => ({\n    message: `Loading user with id \"${userId}\" failed with status: ${error}`,\n  }),\n  notFoundRedirect: true,\n});\n\nconst loadByUsername = notifyingAction({\n  action: UsersActions.loadByUsername,\n  error: (error, username) => ({\n    message: `Loading user with username \"${username}\" failed with status: ${error}`,\n  }),\n  notFoundRedirect: true,\n});\n\nconst update = notifyingAction({\n  action: UsersActions.update,\n  success: (userId, payload, fullName) => ({\n    message: `User \"${fullName}\" was updated successfully`,\n  }),\n  error: (error, userId, payload, fullName) => ({\n    message: `Updating user \"${fullName}\" failed with status: ${error}`,\n  }),\n});\n\nconst deleteAction = notifyingAction({\n  action: UsersActions.delete,\n  success: (userId, fullName) => ({\n    message: `User \"${fullName}\" was deleted successfully`,\n  }),\n  error: (error, userId, fullName) => ({\n    message: `Deleting user \"${fullName}\" failed with status: ${error}`,\n  }),\n});\n\nconst changePassword = notifyingAction({\n  action: UsersActions.changePassword,\n  success: () => ({\n    message: 'Password was changed successfully ',\n  }),\n  error: (error, userId) => ({\n    message: `Changing password for user with id \"${userId}\" failed with status: ${error}`,\n  }),\n});\n\nconst createToken = notifyingAction({\n  action: UsersActions.createToken,\n  success: (userId, tokenName) => ({\n    message: `Token \"${tokenName}\" created successfully`,\n  }),\n  error: (error, userId, tokenName) => ({\n    message: `Creating token \"${tokenName}\" for user with id \"${userId}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadTokens = notifyingAction({\n  action: UsersActions.loadTokens,\n  error: (error, userId) => ({\n    message: `Loading tokens for user with id \"${userId}\" failed with status: ${error}`,\n  }),\n});\n\nconst deleteToken = notifyingAction({\n  action: UsersActions.deleteToken,\n  success: (userId, tokenId, tokenName) => ({\n    message: `Token \"${tokenName}\" deleted successfully`,\n  }),\n  error: (error, userId, tokenId, tokenName) => ({\n    message: `Deleting token \"${tokenName}\" for user with id \"${userId}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadUsers = notifyingAction({\n  action: UsersActions.loadUsers,\n  error: (error) => ({\n    message: `Loading users failed with status: ${error}`,\n  }),\n});\n\nconst loadUsersPaginated = notifyingAction({\n  action: UsersActions.loadUsersPaginated,\n  error: (error) => ({\n    message: `Loading users failed with status: ${error}`,\n  }),\n});\n\nconst setStatus = notifyingAction({\n  action: UsersActions.setStatus,\n  success: (userId, accountStatus) => ({\n    message: `User \"${userId}\" was set to ${accountStatus}`,\n  }),\n  error: (error, userId, accountStatus) => ({\n    message: `Updating user (\"${userId}\") to ${accountStatus} failed with status: ${error}`,\n  }),\n});\n\nexport default {\n  create,\n  load,\n  loadByUsername,\n  update,\n  delete: deleteAction,\n  changePassword,\n  createToken,\n  loadTokens,\n  deleteToken,\n  loadUsers,\n  loadUsersPaginated,\n  setStatus,\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 { $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 Reflux from 'reflux';\nimport * as Immutable from 'immutable';\nimport { $PropertyType, $Shape } from 'utility-types';\n\nimport { singletonActions } from 'views/logic/singleton';\nimport { RefluxActions } from 'stores/StoreTypes';\nimport { Pagination, PaginatedList } from 'stores/PaginationTypes';\nimport User, { UserJSON } from 'logic/users/User';\nimport UserOverview, { AccountStatus } from 'logic/users/UserOverview';\n\nexport type UserCreate = {\n  email: $PropertyType;\n  full_name: $PropertyType;\n  first_name: $PropertyType;\n  last_name: $PropertyType;\n  password: string;\n  permissions: $PropertyType;\n  roles: $PropertyType;\n  session_timeout_ms: $PropertyType;\n  timezone: $PropertyType;\n  username: $PropertyType;\n};\n\nexport type UserUpdate = $Shape;\n\nexport type Token = {\n  id: string;\n  name: string;\n  token: string;\n  last_access: string;\n};\n\nexport type TokenSummary = {\n  id: string,\n  name: string,\n  last_access: string,\n};\n\nexport type ChangePasswordRequest = {\n  old_password: string;\n  password: string;\n};\n\nexport type PaginatedUsers = PaginatedList & {\n  adminUser: UserOverview | null | undefined,\n};\n\nexport type ActionsType = {\n  create: (user: UserCreate) => Promise;\n  load: (userId: string) => Promise;\n  loadByUsername: (username: string) => Promise;\n  update: (userId: string, request: UserUpdate, fullName: string) => Promise;\n  delete: (userId: string, fullName: string) => Promise;\n  changePassword: (userId: string, request: ChangePasswordRequest) => Promise;\n  createToken: (userId: string, tokenName: string) => Promise;\n  loadTokens: (userId: string) => Promise;\n  deleteToken: (userId: string, tokenId: string, tokenName: string) => Promise;\n  loadUsers: () => Promise>;\n  loadUsersPaginated: (pagination: Pagination) => Promise;\n  setStatus: (userId: string, newStatus: AccountStatus) => Promise;\n};\n\nconst UsersActions: RefluxActions = singletonActions('Users', () => Reflux.createActions({\n  create: { asyncResult: true },\n  load: { asyncResult: true },\n  loadByUsername: { asyncResult: true },\n  update: { asyncResult: true },\n  delete: { asyncResult: true },\n  changePassword: { asyncResult: true },\n  createToken: { asyncResult: true },\n  loadTokens: { asyncResult: true },\n  deleteToken: { asyncResult: true },\n  loadUsersPaginated: { asyncResult: true },\n  loadUsers: { asyncResult: true },\n  setStatus: { asyncResult: true },\n}));\n\nexport default UsersActions;\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';\n\nimport { Store } from 'stores/StoreTypes';\nimport UserOverview, { UserOverviewJSON, AccountStatus } from 'logic/users/UserOverview';\nimport fetch from 'logic/rest/FetchProvider';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport { singletonStore } from 'views/logic/singleton';\nimport { qualifyUrl } from 'util/URLUtils';\nimport PaginationURL from 'util/PaginationURL';\nimport User from 'logic/users/User';\nimport UsersActions, { ChangePasswordRequest, Token, PaginatedUsers, UserCreate, UserUpdate } from 'actions/users/UsersActions';\nimport { PaginatedListJSON, Pagination } from 'stores/PaginationTypes';\n\nexport type PaginatedUsersResponse = PaginatedListJSON & {\n  users: Array;\n  context: {\n    admin_user: UserOverviewJSON;\n  };\n};\n\nconst UsersStore: Store = singletonStore('Users', () => Reflux.createStore({\n  listenables: [UsersActions],\n\n  create(user: UserCreate): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.create().url);\n    const promise = fetch('POST', url, user);\n    UsersActions.create.promise(promise);\n\n    return promise;\n  },\n\n  load(id: string): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.load(encodeURIComponent(id)).url);\n    const promise = fetch('GET', url).then(User.fromJSON);\n\n    UsersActions.load.promise(promise);\n\n    return promise;\n  },\n\n  loadByUsername(userId: string): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.loadByUsername(encodeURIComponent(userId)).url);\n    const promise = fetch('GET', url).then(User.fromJSON);\n\n    UsersActions.loadByUsername.promise(promise);\n\n    return promise;\n  },\n\n  update(userId: string, user: UserUpdate): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.update(encodeURIComponent(userId)).url);\n    const promise = fetch('PUT', url, user);\n    UsersActions.update.promise(promise);\n\n    return promise;\n  },\n\n  delete(userId: string): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.delete(encodeURIComponent(userId)).url);\n    const promise = fetch('DELETE', url);\n\n    UsersActions.delete.promise(promise);\n\n    return promise;\n  },\n\n  changePassword(userId: string, request: ChangePasswordRequest): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.changePassword(encodeURIComponent(userId)).url);\n    const promise = fetch('PUT', url, request);\n    UsersActions.changePassword.promise(promise);\n\n    return promise;\n  },\n\n  createToken(userId: string, tokenName: string): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.create_token(encodeURIComponent(userId), encodeURIComponent(tokenName)).url);\n    const promise = fetch('POST', url);\n    UsersActions.createToken.promise(promise);\n\n    return promise;\n  },\n\n  loadTokens(userId: string): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.list_tokens(encodeURIComponent(userId)).url);\n    const promise = fetch('GET', url).then((response) => response.tokens);\n    UsersActions.loadTokens.promise(promise);\n\n    return promise;\n  },\n\n  deleteToken(userId: string, tokenId: string): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.delete_token(encodeURIComponent(userId), encodeURIComponent(tokenId)).url);\n    const promise = fetch('DELETE', url);\n    UsersActions.deleteToken.promise(promise);\n\n    return promise;\n  },\n\n  loadUsers(): Promise> {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.list().url);\n    const promise = fetch('GET', url).then(({\n      users,\n    }) => Immutable.List(users.map((user) => UserOverview.fromJSON(user))));\n    UsersActions.loadUsers.promise(promise);\n\n    return promise;\n  },\n\n  loadUsersPaginated({\n    page,\n    perPage,\n    query,\n  }: Pagination): Promise {\n    const url = PaginationURL(ApiRoutes.UsersApiController.paginated().url, page, perPage, query);\n\n    const promise = fetch('GET', qualifyUrl(url)).then((response: PaginatedUsersResponse) => ({\n      adminUser: response.context.admin_user ? UserOverview.fromJSON(response.context.admin_user) : undefined,\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    UsersActions.loadUsersPaginated.promise(promise);\n\n    return promise;\n  },\n\n  setStatus(userId: string, accountStatus: AccountStatus): Promise {\n    const url = qualifyUrl(ApiRoutes.UsersApiController.setStatus(userId, accountStatus).url);\n    const promise = fetch('PUT', url);\n    UsersActions.setStatus.promise(promise);\n\n    return promise;\n  },\n}));\n\nexport { UsersActions, UsersStore };\nexport default UsersStore;\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy