admin-required.js 668 B

1234567891011121314151617181920212223242526272829
  1. import loggerFactory from '~/utils/logger';
  2. const logger = loggerFactory('growi:middleware:admin-required');
  3. module.exports = (crowi, fallback = null) => {
  4. return async(req, res, next) => {
  5. if (req.user != null && (req.user instanceof Object) && '_id' in req.user) {
  6. if (req.user.admin) {
  7. return next();
  8. }
  9. logger.warn('This user is not admin.');
  10. if (fallback != null) {
  11. return fallback(req, res, next);
  12. }
  13. return res.redirect('/');
  14. }
  15. logger.warn('This user has not logged in.');
  16. if (fallback != null) {
  17. return fallback(req, res, next);
  18. }
  19. return res.redirect('/login');
  20. };
  21. };