better graphs - group modal fix - system list

This commit is contained in:
Luke Berndt
2023-04-24 20:37:07 -04:00
parent 7b56dc70a6
commit 8c9e74e008
16 changed files with 1005 additions and 13 deletions

View File

@@ -12,6 +12,66 @@ exports.isLoggedIn = function (req, res, next) {
// -------------------------------------------
exports.listAllSystems = async function (req, res, next) {
if (!req.user.admin) {
res.status(401);
res.json({ success: false, message: "Not Authorized" });
return;
}
const systems = await System.find().exec();
if (systems == null) {
res.status(400);
res.json({ success: false, message: err });
return;
}
let returnSys = systems.map(obj => {
var rObj = (({
name,
shortName,
description,
systemType,
city,
state,
county,
country,
userId,
key,
showScreenName,
ignoreUnknownTalkgroup,
lastActive,
active
}) => ({
name,
shortName,
description,
systemType,
city,
state,
county,
country,
userId,
key,
showScreenName,
ignoreUnknownTalkgroup,
lastActive,
active
}))(obj);
rObj.id = obj._id;
return rObj;
});
res.json({
success: true,
systems: returnSys
});
return;
};
exports.listSystems = async function (req, res, next) {
const userId = new mongoose.Types.ObjectId(req.user._id);
const systems = await System.find({ userId: userId }).exec();

View File

@@ -79,7 +79,7 @@ function isOwner(req, res, next) {
}
}
/*
function isAdmin(req, res, next) {
if (req.params.shortName && req.user) {
var short_name = req.params.shortName.toLowerCase();
@@ -99,7 +99,7 @@ function isAdmin(req, res, next) {
}
});
}
}
}*/
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) return next();
@@ -109,6 +109,16 @@ function isLoggedIn(req, res, next) {
});
};
function isAdmin(req, res, next) {
if (req.isAuthenticated() && req.user.admin) return next();
res.status(401).send({
success: false,
message: "Not Authenticated."
});
};
function uploadFile(req, res, next) {
const upload = multer({dest: 'uploads/'}).single('file');
@@ -142,6 +152,7 @@ app.post("/groups/:shortName/:groupId?", isLoggedIn, groups.upsertGroup);
app.get("/groups/:shortName/:groupId?", isLoggedIn, groups.getGroups);
app.delete("/groups/:shortName/:groupId", isLoggedIn, groups.deleteGroup);
app.get("/systems", isLoggedIn, systems.listSystems)
app.get("/admin/systems", isAdmin, systems.listAllSystems)
app.delete("/systems/:shortName", isLoggedIn, systems.deleteSystem)
app.post("/systems/:shortName", [isLoggedIn, systems.ownSystem, systems.validateSystem, systems.updateSystem])
app.post("/systems", [isLoggedIn, systems.uniqueShortName, systems.validateSystem, systems.createSystem])

View File

@@ -1,5 +1,6 @@
var mongoose = require('mongoose');
var bcrypt = require('bcrypt');
var User = require('./user');
var systemSchema = mongoose.Schema({
name: String,
@@ -12,7 +13,9 @@ var systemSchema = mongoose.Schema({
description: String,
showScreenName: Boolean,
ignoreUnknownTalkgroup : Boolean,
userId: mongoose.Schema.Types.ObjectId,
active: {type: Boolean, default: false},
lastActive: Date,
userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
key: String
});