UNPKG

@xpresser/events-server

Version:

Xpresser's Official Events Server Plugin.

37 lines (36 loc) 1.29 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isServerAdmin = void 0; const AccessDb_1 = require("../src/AccessDb"); const moment_1 = __importDefault(require("moment")); /** * Access Middleware * Restricts access to certain routes. * @param http */ const isServerAdmin = (http) => { const at = http.req.cookies.at; const key = at ? `logins.${at}` : "none"; if (!at || !AccessDb_1.accessDb.has(key)) { return http.redirectToRoute("events-server", [], { error: "UnAuthorized Access!" }); } const token = AccessDb_1.accessDb.get(key); // check if token has expired. if ((0, moment_1.default)(token).isBefore()) { AccessDb_1.accessDb.unset(token); (0, AccessDb_1.saveAccessDb)(); return http.redirectToRoute("events-server", [], { error: "Session expired, Re-login required." }); } // Add 30 minutes to session AccessDb_1.accessDb.set(key, (0, moment_1.default)().add(30, "minutes").toDate()); (0, AccessDb_1.saveAccessDb)(); return http.next(); }; exports.isServerAdmin = isServerAdmin;