index.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const express = require("express");
  2. const router = express.Router();
  3. const { Dashboard, AddSite, RemoveSite, RefreshSites, DisableSite, EnableSite } = require("../controllers/dashboard");
  4. const { Login, processLogin, Logout, Register, processRegister } = require("../controllers/auth");
  5. const { Apps, searchApps, Install, Uninstall } = require("../controllers/apps");
  6. const { Images } = require("../controllers/images");
  7. const { Volumes } = require("../controllers/volumes");
  8. const { Networks } = require("../controllers/networks");
  9. const { Users } = require("../controllers/users");
  10. const { Account } = require("../controllers/account");
  11. const { Settings } = require("../controllers/settings");
  12. // Authentication middleware
  13. const authenticate = (req, res, next) => {
  14. if (req.session && req.session.role == "admin") {
  15. console.log(`User ${req.session.user} [${req.session.role}] accessed ${req.originalUrl}`)
  16. next();
  17. } else {
  18. console.log('Not admin')
  19. res.redirect("/login");
  20. }
  21. };
  22. // Dashboard
  23. router.get("/", authenticate, Dashboard);
  24. router.post("/addsite", authenticate, AddSite);
  25. router.post("/removesite", authenticate, RemoveSite);
  26. router.get("/refreshsites", authenticate, RefreshSites);
  27. router.post("/disablesite", authenticate, DisableSite);
  28. router.post("/enablesite", authenticate, EnableSite);
  29. router.get("/images", authenticate, Images);
  30. // Auth
  31. router.get("/login", Login);
  32. router.post("/login", processLogin);
  33. router.get("/register", Register);
  34. router.post("/register", processRegister);
  35. router.get("/logout", Logout);
  36. // Apps page
  37. router.get("/apps", authenticate, Apps);
  38. router.get("/apps/:page", authenticate, Apps);
  39. router.get("/apps/:template/:page", authenticate, Apps);
  40. router.post("/apps", authenticate, searchApps);
  41. // Settings page
  42. router.get("/settings", authenticate, Settings);
  43. router.get("/account", authenticate, Account);
  44. router.post("/install", authenticate, Install);
  45. router.post("/uninstall", authenticate, Uninstall);
  46. router.get("/users", authenticate, Users);
  47. module.exports = router;