59 lines
No EOL
2 KiB
JavaScript
59 lines
No EOL
2 KiB
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
|
|
const { Dashboard, AddSite, RemoveSite, RefreshSites, DisableSite, EnableSite } = require("../controllers/dashboard");
|
|
const { Login, processLogin, Logout, Register, processRegister } = require("../controllers/auth");
|
|
const { Apps, searchApps, Install, Uninstall } = require("../controllers/apps");
|
|
|
|
const { Images } = require("../controllers/images");
|
|
const { Volumes } = require("../controllers/volumes");
|
|
const { Networks } = require("../controllers/networks");
|
|
|
|
const { Users } = require("../controllers/users");
|
|
const { Account } = require("../controllers/account");
|
|
const { Settings } = require("../controllers/settings");
|
|
|
|
// Authentication middleware
|
|
const authenticate = (req, res, next) => {
|
|
if (req.session && req.session.role == "admin") {
|
|
console.log(`User ${req.session.user} [${req.session.role}] accessed ${req.originalUrl}`)
|
|
next();
|
|
} else {
|
|
console.log('Not admin')
|
|
res.redirect("/login");
|
|
}
|
|
};
|
|
|
|
// Dashboard
|
|
router.get("/", authenticate, Dashboard);
|
|
router.post("/addsite", authenticate, AddSite);
|
|
router.post("/removesite", authenticate, RemoveSite);
|
|
router.get("/refreshsites", authenticate, RefreshSites);
|
|
router.post("/disablesite", authenticate, DisableSite);
|
|
router.post("/enablesite", authenticate, EnableSite);
|
|
|
|
router.get("/images", authenticate, Images);
|
|
|
|
// Auth
|
|
router.get("/login", Login);
|
|
router.post("/login", processLogin);
|
|
router.get("/register", Register);
|
|
router.post("/register", processRegister);
|
|
router.get("/logout", Logout);
|
|
|
|
// Apps page
|
|
router.get("/apps", authenticate, Apps);
|
|
router.get("/apps/:page", authenticate, Apps);
|
|
router.get("/apps/:template/:page", authenticate, Apps);
|
|
router.post("/apps", authenticate, searchApps);
|
|
|
|
// Settings page
|
|
router.get("/settings", authenticate, Settings);
|
|
router.get("/account", authenticate, Account);
|
|
|
|
router.post("/install", authenticate, Install);
|
|
router.post("/uninstall", authenticate, Uninstall);
|
|
|
|
router.get("/users", authenticate, Users);
|
|
|
|
module.exports = router; |