27 lines
1.2 KiB
JavaScript
27 lines
1.2 KiB
JavaScript
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;
|