index.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import express from "express";
  2. import { Permission, User } from '../database/models.js';
  3. export const router = express.Router();
  4. // Controllers
  5. import { Login, submitLogin, Logout } from "../controllers/login.js";
  6. import { Register, submitRegister } from "../controllers/register.js";
  7. import { Dashboard, Logs, Modals, Stats, Chart, SSE, Card, updateCards, Containers, Action, UpdatePermissions } from "../controllers/dashboard.js";
  8. import { Apps, appSearch, InstallModal, ImportModal, LearnMore } from "../controllers/apps.js";
  9. import { Users } from "../controllers/users.js";
  10. import { Images, removeImage } from "../controllers/images.js";
  11. import { Networks, removeNetwork } from "../controllers/networks.js";
  12. import { Volumes, removeVolume } from "../controllers/volumes.js";
  13. import { Account } from "../controllers/account.js";
  14. import { Variables } from "../controllers/variables.js";
  15. import { Settings } from "../controllers/settings.js";
  16. import { Supporters, Thanks } from "../controllers/supporters.js";
  17. import { Syslogs } from "../controllers/syslogs.js";
  18. import { Portal } from "../controllers/portal.js"
  19. // Auth middleware
  20. const auth = (req, res, next) => {
  21. if (req.session.role == "admin") {
  22. next();
  23. } else {
  24. res.redirect("/portal");
  25. }
  26. };
  27. // Admin routes
  28. router.get("/", auth, Dashboard);
  29. router.post("/action/:action", auth, Action);
  30. router.get("/logs", auth, Logs);
  31. router.get("/modals", auth, Modals);
  32. router.get("/stats", auth, Stats);
  33. router.get("/chart", auth, Chart);
  34. router.get("/sse_event", auth, SSE);
  35. router.get("/containers", auth, Containers);
  36. router.get("/card", auth, Card);
  37. router.get("/new_cards", auth, updateCards);
  38. router.post("/updatePermissions", auth, UpdatePermissions);
  39. router.get("/images", auth, Images);
  40. router.post("/removeImage", auth, removeImage);
  41. router.get("/volumes", auth, Volumes);
  42. router.post("/removeVolume", auth, removeVolume);
  43. router.get("/networks", auth, Networks);
  44. router.post("/removeNetwork", auth, removeNetwork);
  45. router.get("/apps", auth, Apps);
  46. router.get("/apps/:page", auth, Apps);
  47. router.post("/apps", auth, appSearch);
  48. router.get("/install_modal", auth, InstallModal)
  49. router.get("/import_modal", auth, ImportModal)
  50. router.get("/learn_more", auth, LearnMore)
  51. router.get("/users", auth, Users);
  52. router.get("/syslogs", auth, Syslogs);
  53. router.get("/variables", auth, Variables);
  54. router.get("/settings", auth, Settings);
  55. // User routes
  56. router.get("/portal", Portal);
  57. router.get("/account", Account);
  58. router.get("/supporters", Supporters);
  59. router.post("/thank", Thanks);
  60. router.get("/login", Login);
  61. router.post("/login", submitLogin);
  62. router.get("/register", Register);
  63. router.post("/register", submitRegister);
  64. router.get("/logout", Logout);
  65. // Functions
  66. import { Install } from "../functions/install.js"
  67. import { Uninstall } from "../functions/uninstall.js"
  68. router.post("/install", auth, Install);
  69. router.post("/uninstall", auth, Uninstall);