aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-23 11:52:04 +0000
committernanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-23 11:52:04 +0000
commit630c86aacf4594ffae2b13720e5b44f8b2557953 (patch)
tree0b9736416efdad3166e4c67f4cd4a9df7919adbc
parent41dca46235c15578aab159074c99c904597c5fb2 (diff)
Added route protection for the admin panel, and additional for user. Nav changes depending on admin/user
-rw-r--r--routes/admin.js14
-rw-r--r--routes/user.js13
2 files changed, 24 insertions, 3 deletions
diff --git a/routes/admin.js b/routes/admin.js
index 35b208b..bdd4f9b 100644
--- a/routes/admin.js
+++ b/routes/admin.js
@@ -7,7 +7,9 @@ var passport = require('passport');
var csrfProtection = csrf();
router.use(csrfProtection); // router is protected
-router.get('/', function(req,res){
+
+
+router.get('/', isAdmin, function(req,res){
res.render('admin', {csrfToken: req.csrfToken()});
});
@@ -102,3 +104,13 @@ function parseStringArray(input){
module.exports = router;
+
+/************** Route protection ********************/
+
+function isAdmin(req, res, next) {
+ if (!req.user.email){
+ return next();
+ }
+ res.redirect('/');
+}
+
diff --git a/routes/user.js b/routes/user.js
index 6167713..325b8ff 100644
--- a/routes/user.js
+++ b/routes/user.js
@@ -13,7 +13,7 @@ router.get('/logout', loggedIn, function (req, res, next) {
});
/* Render/GET user_profile page */
-router.get('/user_profile', loggedIn, function(req, res, next) {
+router.get('/user_profile', loggedIn, isUser, function(req, res, next) {
res.render('user_profile_alt');
});
@@ -93,6 +93,8 @@ router.post('/signin', loggedOut, function(req, res, next) {
module.exports = router;
+/************** Route protection ********************/
+
function loggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
@@ -105,4 +107,11 @@ function loggedOut(req, res, next) {
return next();
}
res.redirect('/');
-} \ No newline at end of file
+}
+
+function isUser(req, res, next) {
+ if (req.user.email) {
+ return next();
+ }
+ res.redirect('/admin');
+}