44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
|
import { Router } from "express";
|
||
|
import { ENVIRONMENT } from "../Modules/Constants";
|
||
|
import { RequireAuthentication, ValidateBody } from "../Modules/Middleware";
|
||
|
import { UserPermissions } from "../Schemas/User";
|
||
|
import j from "joi";
|
||
|
|
||
|
const App = Router();
|
||
|
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
// ! NEVER EVER ENABLE THESE ON PRODUCTION OR STAGING
|
||
|
|
||
|
App.use((req, res, next) => {
|
||
|
if (ENVIRONMENT !== "dev" && ENVIRONMENT !== "debug")
|
||
|
return res.status(403).send("The current server environment does not allow for debugging endpoints. Switch to `dev` or `debug` to enable them.");
|
||
|
|
||
|
next();
|
||
|
})
|
||
|
|
||
|
App.post("/update/permissions",
|
||
|
RequireAuthentication(),
|
||
|
ValidateBody(j.object({
|
||
|
Perms: j.number().valid(...(Object.values(UserPermissions).filter(x => !isNaN(Number(x))))).required()
|
||
|
})),
|
||
|
async (req, res) => {
|
||
|
req.user!.PermissionLevel! = req.body.Perms as UserPermissions;
|
||
|
await req.user!.save();
|
||
|
res.json(req.user);
|
||
|
})
|
||
|
|
||
|
export default {
|
||
|
App,
|
||
|
DefaultAPI: "/api/debug"
|
||
|
}
|