Adding permission mangement to admin panel

This commit is contained in:
Fabian Stamm
2018-11-09 16:44:03 +01:00
parent 774df52736
commit 557d7e186e
9 changed files with 125 additions and 31 deletions

View File

@ -5,6 +5,7 @@ import promiseMiddleware from "../../helper/promiseMiddleware";
import Permission from "../../models/permissions";
import verify, { Types } from "../middlewares/verify";
import Client from "../../models/client";
import { ObjectID } from "bson";
const PermissionRoute: Router = Router();
PermissionRoute.use(GetUserMiddleware(true, true), (req: Request, res, next) => {
@ -15,12 +16,16 @@ PermissionRoute.use(GetUserMiddleware(true, true), (req: Request, res, next) =>
PermissionRoute.route("/")
.get(promiseMiddleware(async (req, res) => {
let permission = await Permission.find({});
let query = {};
if (req.query.client) {
query = { client: new ObjectID(req.query.client) }
}
let permission = await Permission.find(query);
res.json(permission);
}))
.post(verify({
clientId: {
type: Types.NUMBER
client: {
type: Types.STRING
},
name: {
type: Types.STRING
@ -29,7 +34,7 @@ PermissionRoute.route("/")
type: Types.STRING
}
}, true), promiseMiddleware(async (req, res) => {
let client = await Client.findById(req.body.clientId);
let client = await Client.findById(req.body.client);
if (!client) {
throw new RequestError("Client not found", HttpStatusCode.BAD_REQUEST);
}
@ -40,6 +45,10 @@ PermissionRoute.route("/")
});
await Permission.save(permission);
res.json(permission);
}))
})).delete(promiseMiddleware(async (req, res) => {
let { id } = req.query;
await Permission.delete(id);
res.json({ success: true });
}));
export default PermissionRoute;