Skip to content

Commit

Permalink
changing admin API calls to return 404 if unauthenticated, and redire…
Browse files Browse the repository at this point in the history
…ct user to login for regular URL. closes #1885
  • Loading branch information
julianlam committed Sep 1, 2014
1 parent 7572c9a commit 08c9cbd
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 3 deletions.
4 changes: 3 additions & 1 deletion src/middleware/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ var app,

middleware.isAdmin = function(req, res, next) {
if (!req.user) {
return res.redirect(nconf.get('relative_path') + '/login?next=admin');
return res.json(404, {
error: 'not-found'
});
}

user.isAdministrator((req.user && req.user.uid) ? req.user.uid : 0, function (err, isAdmin) {
Expand Down
3 changes: 3 additions & 0 deletions src/middleware/middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ var app,
categories = require('./../categories'),
topics = require('./../topics'),
messaging = require('../messaging'),
ensureLoggedIn = require('connect-ensure-login'),

controllers = {
api: require('./../controllers/api')
Expand All @@ -32,6 +33,8 @@ middleware.authenticate = function(req, res, next) {
}
};

middleware.ensureLoggedIn = ensureLoggedIn.ensureLoggedIn();

middleware.updateLastOnlineTime = function(req, res, next) {
if(req.user) {
user.updateLastOnlineTime(req.user.uid);
Expand Down
2 changes: 1 addition & 1 deletion src/routes/authentication.js
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@
}

app.get(strategy.callbackURL, passport.authenticate(strategy.name, {
successRedirect: nconf.get('relative_path') + '/',
successReturnToOrRedirect: nconf.get('relative_path') + '/',
failureRedirect: nconf.get('relative_path') + '/login'
}));
}
Expand Down
2 changes: 1 addition & 1 deletion src/routes/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ module.exports = function(app, middleware) {

app.all(relativePath + '/api/?*', middleware.updateLastOnlineTime, middleware.prepareAPI);
app.all(relativePath + '/api/admin/*', middleware.admin.isAdmin, middleware.prepareAPI);
app.all(relativePath + '/admin/?*', middleware.admin.isAdmin);
app.all(relativePath + '/admin/?*', middleware.ensureLoggedIn, middleware.admin.isAdmin);

adminRoutes(router, middleware, controllers);
metaRoutes(router, middleware, controllers);
Expand Down

0 comments on commit 08c9cbd

Please sign in to comment.