Kaushik Narayan R 32735ad7ff boom!
overall: formatting check, jsdoc type hints, express res/return stuff

utils - changes in logger, dateformatter and removed unneeded ones

.env file changes

license check, readme update

package.json update - version, deps, URLs

server cleanup

sequelize config check
2024-08-14 21:08:58 +05:30

38 lines
871 B
JavaScript

const logger = require("../utils/logger")(module);
const typedefs = require("../typedefs");
const creds = JSON.parse(process.env.ADMIN_CREDS);
/**
* Middleware to validate admin access
* @param {typedefs.Req} req
* @param {typedefs.Res} res
* @param {typedefs.Next} next
*/
const adminQueryCreds = async (req, res, next) => {
try {
/** @type {any} */
const { user, access } = req.query;
if (creds[user] === access) {
logger.info("Admin access - " + user);
next();
}
else {
// we do a bit of trolling here
const unauthIP = req.headers['x-real-ip'] || req.ip
res.status(401).send("Intruder alert. IP address: " + unauthIP);
logger.warn("Intruder alert.", { ip: unauthIP });
return;
}
} catch (error) {
res.sendStatus(500);
logger.error("adminQueryCreds", { error });
return;
}
}
module.exports = {
adminQueryCreds,
};