Skip to content

Commit 0988cf9

Browse files
RichardJECookeRichardJECooke
authored andcommitted
Made multiple role checking
1 parent bea7e67 commit 0988cf9

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

complete-application/routes/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ router.get('/', function (req, res, next) {
66
res.render('index', { title: 'Express' });
77
});
88

9-
router.post('/panic', hasRole('teller'), function (req, res, next) {
9+
router.post('/panic', hasRole(['teller']), function (req, res, next) {
1010
res.send("We've called the police!");
1111
});
1212

13-
router.get('/make-change', hasRole('customer'), function (req, res, next) {
13+
router.get('/make-change', hasRole(['customer', 'teller']), function (req, res, next) {
1414
const amount = req.query.total;
1515
const result = { total: 0, nickels: 0, pennies: 0};
1616
result.total = Math.trunc(parseFloat(amount)*100)/100;

complete-application/services/hasRole.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
const jose = require('jose');
22

3-
function hasRole(role) {
3+
function hasRole(roles) {
44
return (req, res, next) => {
55
const decodedToken = jose.decodeJwt(req.cookies['app.at']);
6-
if (decodedToken.roles.includes(role)) return next();
6+
if (roles.some((role) => decodedToken.roles.includes(role))) return next();
77
res.status(500);
8-
res.send({ error: `You do not have the ${role} role.` });
8+
res.send({ error: `You do not have a role with permissions to do this.` });
99
}
1010
}
1111

0 commit comments

Comments
 (0)