2
0

User.service.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import {
  2. CreateUserParams,
  3. DeleteUserParams,
  4. UpdateUserParams,
  5. CreateRoleParams,
  6. DeleteRoleParams,
  7. AssignRoleParams,
  8. UnassignRoleParams,
  9. } from '../pages/user/Types';
  10. import BaseModel from './BaseModel';
  11. import { Users, UsersWithRoles } from '@server/types';
  12. export class UserService extends BaseModel {
  13. // get user data
  14. static getUsers() {
  15. return super.search<Users>({ path: '/users', params: {} });
  16. }
  17. // get all roles
  18. static getRoles() {
  19. return super.search<UsersWithRoles>({ path: `/users/roles`, params: {} });
  20. }
  21. // create user
  22. static createUser(data: CreateUserParams) {
  23. return super.create({ path: '/users', data });
  24. }
  25. // update user (pass)
  26. static updateUser(data: UpdateUserParams) {
  27. return super.update({ path: '/users', data });
  28. }
  29. // delete user
  30. static deleteUser(data: DeleteUserParams) {
  31. return super.delete({ path: `/users/${data.username}` });
  32. }
  33. // update user role
  34. static updateUserRole(data: AssignRoleParams) {
  35. return super.update({
  36. path: `/users/${data.username}/role/update`,
  37. data,
  38. });
  39. }
  40. // unassign user role
  41. static unassignUserRole(data: UnassignRoleParams) {
  42. return super.update({
  43. path: `/users/${data.username}/role/unassign`,
  44. data,
  45. });
  46. }
  47. // create a role
  48. static createRole(data: CreateRoleParams) {
  49. return super.create({ path: `/users/roles`, data });
  50. }
  51. // delete a role
  52. static deleteRole(data: DeleteRoleParams) {
  53. return super.delete({ path: `/users/roles/${data.roleName}`, data });
  54. }
  55. // update role privileges
  56. static updateRolePrivileges(data: CreateRoleParams) {
  57. return super.update({
  58. path: `/users/roles/${data.roleName}/updatePrivileges`,
  59. data,
  60. });
  61. }
  62. // get RBAC info
  63. static getRBAC() {
  64. return super.search({
  65. path: `/users/rbac`,
  66. params: {},
  67. }) as Promise<{
  68. GlobalPrivileges: Record<string, unknown>;
  69. CollectionPrivileges: Record<string, unknown>;
  70. RbacObjects: Record<string, unknown>;
  71. UserPrivileges: Record<string, unknown>;
  72. Privileges: Record<string, unknown>;
  73. }>;
  74. }
  75. }