SetPermission.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const API = require("../../lib/API");
  2. const { BaseStdResponse } = require("../../BaseStdResponse");
  3. const db = require("../../plugin/DataBase/db");
  4. const AccessControl = require("../../lib/AccessControl");
  5. class SetPermission extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/Admin/SetPermission');
  9. this.setMethod('POST');
  10. }
  11. async onRequest(req, res) {
  12. let {
  13. uuid,
  14. session,
  15. userid,
  16. manage
  17. } = req.body;
  18. if ([uuid, session, userid, manage].some(value => value === '' || value === null || value === undefined)) {
  19. res.json({
  20. ...BaseStdResponse.MISSING_PARAMETER,
  21. endpoint: 151456
  22. });
  23. return;
  24. }
  25. //检查session
  26. if (!await AccessControl.checkSession(uuid, session)) {
  27. res.json({
  28. ...BaseStdResponse.ACCESS_DENIED,
  29. endpoint: 485367
  30. });
  31. return;
  32. }
  33. //确认操作人权限
  34. let permission = await AccessControl.getPermission(uuid);
  35. if (!permission.includes("admin")) {
  36. res.json({
  37. ...BaseStdResponse.PERMISSION_DENIED,
  38. endpoint: 4815478,
  39. });
  40. return;
  41. }
  42. let sql = `UPDATE users SET manage = ? WHERE id = ?`;
  43. let result = await db.query(sql, [manage, userid]);
  44. if (!result || result.affectedRows !== 1) {
  45. res.json({
  46. ...BaseStdResponse.DATABASE_ERR,
  47. endpoint: 5135135
  48. });
  49. return;
  50. }
  51. res.json({
  52. ...BaseStdResponse.OK
  53. });
  54. }
  55. }
  56. module.exports.SetPermission = SetPermission;