Skip to content

Commit 99d332c

Browse files
committed
Requires Admin access to hit api routes
1 parent 195f318 commit 99d332c

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

routes/api.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,32 @@
1+
'use strict';
2+
13
////////////////
24
// dependices
35
var express = require('express');
46
var router = express.Router();
57
var debug = require('debug')('niche-store');
68
var db = require('../db');
79

8-
router.get('/products', function(req, res, next) {
10+
/**
11+
* Only allows the route to be accessed if the user is an admin.
12+
*/
13+
function requireAdmin(req, res, next) {
14+
if (!req.session.user || !req.session.user.isAdmin) {
15+
debug('Permission denied: %j', req.session.user);
16+
return next(new Error("Permission denied."));
17+
}
18+
19+
next();
20+
}
21+
22+
router.get('/products', requireAdmin, function(req, res, next) {;
923
db.Product.find(function(err, products) {
1024
if (err) return next(err);
1125
res.send(products);
1226
});
1327
});
1428

15-
router.get('/products/:slug', function(req, res, next) {
29+
router.get('/products/:slug', requireAdmin, function(req, res, next) {
1630
db.Product.findOne({'slug' : req.params.slug})
1731
.exec(function(err, product) {
1832
if (err) return next(err);

0 commit comments

Comments
 (0)