/*Canopy - The next generation of stoner streaming software Copyright (C) 2024-2025 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see .*/ //Config const config = require('../../config.json'); //NPM Imports const validator = require('validator');//No express here, so regular validator it is! //Local Imports const {userModel} = require('../schemas/user/userSchema'); const permissionModel = require('../schemas/permissionSchema'); const channelModel = require('../schemas/channel/channelSchema'); const csrfUtils = require('../utils/csrfUtils'); const {exceptionHandler, errorHandler} = require("../utils/loggerUtils"); //register page functions module.exports.get = async function(req, res){ try{ //Get DB info const chanGuide = await channelModel.getChannelList(true); const userList = await userModel.getUserList(true); const permList = (await permissionModel.getPerms()).toObject(); //Clean up perm list :P delete permList._id ; delete permList.channelOverrides._id ; delete permList.__v; //Render out the page return res.render('adminPanel', { instance: config.instanceName, user: req.session.user, rankEnum: permissionModel.rankEnum, chanGuide: chanGuide, userList: userList, permList: permList, csrfToken: csrfUtils.generateToken(req), unescape: validator.unescape }); }catch(err){ return exceptionHandler(res,err); } }