diff --git a/src/controllers/adminPanelController.js b/src/controllers/adminPanelController.js
index a422f9a..b17641f 100644
--- a/src/controllers/adminPanelController.js
+++ b/src/controllers/adminPanelController.js
@@ -24,9 +24,25 @@ const {exceptionHandler} = 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);
- return res.render('adminPanel', {instance: config.instanceName, user: req.session.user, chanGuide: chanGuide, userList: userList, rankEnum: permissionModel.rankEnum});
+ const permList = (await permissionModel.getPerms()).toObject();
+
+ //Clean up perm list :P
+ delete permList._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
+ });
+
}catch(err){
return exceptionHandler(res,err);
}
diff --git a/src/controllers/api/admin/listPermissionsController.js b/src/controllers/api/admin/listPermissionsController.js
new file mode 100644
index 0000000..c3ddd0e
--- /dev/null
+++ b/src/controllers/api/admin/listPermissionsController.js
@@ -0,0 +1,31 @@
+/*Canopy - The next generation of stoner streaming software
+Copyright (C) 2024 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 .*/
+
+//local imports
+const {exceptionHandler} = require('../../../utils/loggerUtils.js');
+const permissionModel = require('../../../schemas/permissionSchema.js');
+
+//api account functions
+module.exports.get = async function(req, res){
+ try{
+ const perms = await permissionModel.getPerms();
+
+ res.status(200);
+ return res.send(perms);
+ }catch(err){
+ return exceptionHandler(res, err);
+ }
+}
\ No newline at end of file
diff --git a/src/controllers/panel/placeholderController.js b/src/controllers/panel/placeholderController.js
index 1455783..5119f89 100644
--- a/src/controllers/panel/placeholderController.js
+++ b/src/controllers/panel/placeholderController.js
@@ -16,5 +16,5 @@ along with this program. If not, see .*/
//root index functions
module.exports.get = async function(req, res){
- res.render('panels/placeholder', {});
+ res.render('partial/panels/placeholder', {});
}
\ No newline at end of file
diff --git a/src/controllers/panel/popoutContainerController.js b/src/controllers/panel/popoutContainerController.js
index 78082b8..5461e7c 100644
--- a/src/controllers/panel/popoutContainerController.js
+++ b/src/controllers/panel/popoutContainerController.js
@@ -19,5 +19,5 @@ const config = require('../../../config.json');
//popout panel container functions
module.exports.get = async function(req, res){
- res.render('panels/popoutContainer', {instance: config.instanceName});
+ res.render('popoutContainer', {instance: config.instanceName});
}
\ No newline at end of file
diff --git a/src/routers/api/adminRouter.js b/src/routers/api/adminRouter.js
index d2cbb15..3af1d11 100644
--- a/src/routers/api/adminRouter.js
+++ b/src/routers/api/adminRouter.js
@@ -24,6 +24,7 @@ const permissionSchema = require("../../schemas/permissionSchema");
const listUsersController = require("../../controllers/api/admin/listUsersController");
const listChannelsController = require("../../controllers/api/admin/listChannelsController");
const changeRankController = require("../../controllers/api/admin/changeRankController");
+const listPermissionsController = require("../../controllers/api/admin/listPermissionsController");
//globals
const router = Router();
@@ -34,6 +35,7 @@ router.use(permissionSchema.reqPermCheck("adminAPI"));
//routing functions
router.get('/listUsers', listUsersController.get);
router.get('/listChannels', listChannelsController.get);
+router.get('/listPermissions', listPermissionsController.get);
router.post('/changeRank', accountValidator.user(), accountValidator.rank(), changeRankController.post);
module.exports = router;
diff --git a/src/views/adminPanel.ejs b/src/views/adminPanel.ejs
index 20534ab..9418fc2 100644
--- a/src/views/adminPanel.ejs
+++ b/src/views/adminPanel.ejs
@@ -24,6 +24,7 @@ along with this program. If not, see .-->
<%- include('partial/navbar', {user}); %>
<%- include('partial/adminPanel/channelList', {chanGuide}) %>
<%- include('partial/adminPanel/userList', {user, userList, rankEnum}) %>
+ <%- include('partial/adminPanel/permList', {permList, rankEnum}) %>