user-right.ts 742 B

123456789101112131415161718192021222324252627
  1. import * as express from 'express'
  2. import { UserRight } from '../../shared'
  3. import { logger } from '../helpers/logger'
  4. function ensureUserHasRight (userRight: UserRight) {
  5. return function (req: express.Request, res: express.Response, next: express.NextFunction) {
  6. const user = res.locals.oauth.token.user
  7. if (user.hasRight(userRight) === false) {
  8. const message = `User ${user.username} does not have right ${UserRight[userRight]} to access to ${req.path}.`
  9. logger.info(message)
  10. return res.status(403)
  11. .json({
  12. error: message
  13. })
  14. .end()
  15. }
  16. return next()
  17. }
  18. }
  19. // ---------------------------------------------------------------------------
  20. export {
  21. ensureUserHasRight
  22. }