admin.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. "use strict";
  2. var express = require('express');
  3. var router = express.Router();
  4. const Promise = require('bluebird');
  5. /**
  6. * Admin
  7. */
  8. router.get('/', (req, res) => {
  9. res.redirect('/admin/profile');
  10. });
  11. router.get('/profile', (req, res) => {
  12. if(res.locals.isGuest) {
  13. return res.render('error-forbidden');
  14. }
  15. res.render('pages/admin/profile', { adminTab: 'profile' });
  16. });
  17. router.get('/stats', (req, res) => {
  18. if(res.locals.isGuest) {
  19. return res.render('error-forbidden');
  20. }
  21. Promise.all([
  22. db.Entry.count(),
  23. db.UplFile.count(),
  24. db.User.count()
  25. ]).spread((totalEntries, totalUploads, totalUsers) => {
  26. return res.render('pages/admin/stats', {
  27. totalEntries, totalUploads, totalUsers,
  28. adminTab: 'stats'
  29. }) || true;
  30. }).catch((err) => {
  31. throw err;
  32. });
  33. });
  34. router.get('/users', (req, res) => {
  35. if(!res.locals.rights.manage) {
  36. return res.render('error-forbidden');
  37. }
  38. res.render('pages/admin/users', { adminTab: 'users' });
  39. });
  40. router.get('/settings', (req, res) => {
  41. if(!res.locals.rights.manage) {
  42. return res.render('error-forbidden');
  43. }
  44. res.render('pages/admin/settings', { adminTab: 'settings' });
  45. });
  46. module.exports = router;