GetUserList.js 1.6 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 GetUserList extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/Admin/User');
  9. this.setMethod('GET');
  10. }
  11. async onRequest(req, res) {
  12. let {
  13. uuid,
  14. session
  15. } = req.query;
  16. if (!uuid || !session) {
  17. res.json({
  18. ...BaseStdResponse.MISSING_PARAMETER,
  19. endpoint: 1513123
  20. });
  21. return;
  22. }
  23. //检查session
  24. if (!await AccessControl.checkSession(uuid, session)) {
  25. res.json({
  26. ...BaseStdResponse.ACCESS_DENIED,
  27. endpoint: 4815312
  28. });
  29. return;
  30. }
  31. //确认操作人权限
  32. let permission = await AccessControl.getPermission(uuid);
  33. if (!permission.includes("admin")) {
  34. res.json({
  35. ...BaseStdResponse.PERMISSION_DENIED,
  36. endpoint: 4815456,
  37. });
  38. return;
  39. }
  40. let sql = `SELECT id, uuid, username, wxid, avatar, admin, manage FROM users`;
  41. let result = await db.query(sql);
  42. if (!result) {
  43. res.json({
  44. ...BaseStdResponse.ERR,
  45. endpoint: 132456,
  46. });
  47. return;
  48. }
  49. res.json({
  50. ...BaseStdResponse.OK,
  51. data: result,
  52. });
  53. }
  54. }
  55. module.exports.GetUserList = GetUserList;