portal/routes/dashboard.js

27 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

const express = require("express");
const router = express.Router();
const requireAuth = (req, res, next) => {
if (!req.isAuthenticated()) return res.redirect("/auth/login");
next();
};
router.get("/", requireAuth, (req, res) => {
const user = req.user;
const apps = [
{ id:"nextcloud", name:"Nextcloud Drive", desc:"File & dokumen bersama", url:process.env.URL_NEXTCLOUD, icon:"☁️", color:"#E6F1FB" },
{ id:"sogo", name:"SOGo Mail", desc:"Email & kalender tim", url:process.env.URL_SOGO+"/SOGo", icon:"✉️", color:"#E1F5EE" },
{ id:"odoo", name:"Odoo ERP", desc:"HR, CRM, Project", url:process.env.URL_ODOO, icon:"📊", color:"#EEEDFE" },
{ id:"monitoring", name:"Monitoring", desc:"Grafana dashboard", url:process.env.URL_MONITORING, icon:"📈", color:"#FEF3E2" },
{ id:"gitea", name:"Gitea Dev", desc:"Git repository", url:process.env.URL_GITEA, icon:"🐙", color:"#F0F0F0" },
];
res.render("dashboard", {
user, apps,
brandName: process.env.BRAND_NAME || "OpenSuite",
brandColor: process.env.BRAND_COLOR || "#1A56DB",
title: "Dashboard — " + (process.env.BRAND_NAME || "OpenSuite"),
});
});
module.exports = router;