GetPermissions.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const API = require("../../lib/API");
  2. const { BaseStdResponse } = require("../../BaseStdResponse");
  3. const AccessControl = require("../../lib/AccessControl");
  4. // 获取用户权限
  5. class GetPermissions extends API {
  6. constructor() {
  7. super();
  8. this.setMethod("GET");
  9. this.setPath("/User/GetPermissions");
  10. }
  11. async onRequest(req, res) {
  12. let {
  13. uuid,
  14. session
  15. } = req.query;
  16. // 检查必需的参数是否缺失
  17. if ([uuid, session].some(value => value === '' || value === null || value === undefined)) {
  18. res.json({
  19. ...BaseStdResponse.MISSING_PARAMETER,
  20. endpoint: 1513123
  21. });
  22. return;
  23. }
  24. // 检查 session 是否有效
  25. if (!await AccessControl.checkSession(uuid, session)) {
  26. res.status(401).json({
  27. ...BaseStdResponse.ACCESS_DENIED,
  28. endpoint: 48153145
  29. });
  30. return;
  31. }
  32. let permission = await AccessControl.getPermission(uuid);
  33. let permissionCodes = await AccessControl.getUserPermissionCodes(uuid);
  34. let permissionPoints = await AccessControl.getPermissionPoints();
  35. res.json({
  36. ...BaseStdResponse.OK,
  37. roles: permission,
  38. data: {
  39. roles: permission,
  40. permissionCodes,
  41. permissionPoints
  42. }
  43. });
  44. }
  45. }
  46. module.exports.GetPermissions = GetPermissions;