GetUserInfo.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const API = require("../../lib/API")
  2. const db = require("../../plugin/DataBase/db")
  3. const AccessControl = require("../../lib/AccessControl")
  4. const Redis = require('../../plugin/DataBase/Redis')
  5. const { BaseStdResponse } = require("../../BaseStdResponse")
  6. class GetRepoList extends API {
  7. constructor() {
  8. super();
  9. this.setPath('/User/Info')
  10. this.setMethod('GET')
  11. }
  12. async onRequest(req, res) {
  13. let {
  14. uuid,
  15. session
  16. } = req.query
  17. if ([uuid, session].some(value => value === '' || value === null || value === undefined))
  18. return res.json({
  19. ...BaseStdResponse.MISSING_PARAMETER
  20. })
  21. // 检查 session
  22. if (!await AccessControl.checkSession(uuid, session))
  23. return res.status(401).json({
  24. ...BaseStdResponse.ACCESS_DENIED
  25. })
  26. let sql = 'SELECT uuid, username, permission AS roles, avatar, email, registTime FROM users WHERE uuid = ?'
  27. let rows = await db.query(sql, [uuid])
  28. if (!rows || rows.length === 0)
  29. return res.json({
  30. ...BaseStdResponse.MISSING_FILE,
  31. msg: '获取用户信息失败!'
  32. })
  33. const userSession = await Redis.get(`userSession:${uuid}`)
  34. res.json({
  35. ...BaseStdResponse.OK,
  36. data: {
  37. ...rows[0],
  38. session: userSession
  39. }
  40. })
  41. }
  42. }
  43. module.exports.GetRepoList = GetRepoList;