aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2014-08-23 19:04:14 -0700
committerAdam Soltys <[email protected]>2014-08-23 19:04:14 -0700
commitaffe228986f76b06aa96b3789852a01f8a950644 (patch)
tree77167a378a23c5eb3154c9b1e1b30f2b24ceb1ae
parentbba3ba38ec86ea98a456f56c596c9f8006e7516b (diff)
downloadcoinos-server-affe228986f76b06aa96b3789852a01f8a950644.tar.gz
coinos-server-affe228986f76b06aa96b3789852a01f8a950644.zip
Direct to originally requested page after authorization
-rw-r--r--app.js9
-rw-r--r--routes/sessions.js8
-rw-r--r--src/app.coffee9
-rw-r--r--src/routes/sessions.coffee8
4 files changed, 20 insertions, 14 deletions
diff --git a/app.js b/app.js
index 74e8611d..e5fa6f70 100644
--- a/app.js
+++ b/app.js
@@ -77,11 +77,14 @@
if (req.params.user === ((_ref = req.user) != null ? _ref.username : void 0) || ((_ref1 = req.user) != null ? _ref1.username : void 0) === 'admin') {
return next();
}
+ req.session.redirect = req.path;
return res.redirect('/login');
};
cache = function(req, res, next) {
- res.setHeader("Cache-Control", "public, max-age=900");
+ if (req.path !== '/login') {
+ res.setHeader("Cache-Control", "public, max-age=900");
+ }
return next();
};
@@ -122,7 +125,7 @@
app.post('/users', users.create);
- app.get('/:user/edit', authorize, cache, users.edit);
+ app.get('/:user/edit', authorize, users.edit);
app.post('/:user', authorize, users.update);
@@ -130,7 +133,7 @@
app.post('/:user/transactions', transactions.create);
- app.get('/:user/report', authorize, cache, transactions.index);
+ app.get('/:user/report', authorize, transactions.index);
app.get('/:user.json', users.json);
diff --git a/routes/sessions.js b/routes/sessions.js
index 6f04d2fd..38ae74b1 100644
--- a/routes/sessions.js
+++ b/routes/sessions.js
@@ -34,11 +34,13 @@
if (err) {
return next(err);
}
- if (/edit/.test(req.headers['referer'])) {
- url = "/" + user.username + "/edit";
- } else {
+ if (req.session.redirect != null) {
+ url = req.session.redirect;
+ }
+ if (url == null) {
url = "/" + user.username;
}
+ delete req.session.redirect;
return res.redirect(url);
});
})(req, res, next);
diff --git a/src/app.coffee b/src/app.coffee
index a0ac6334..4198754c 100644
--- a/src/app.coffee
+++ b/src/app.coffee
@@ -34,10 +34,13 @@ authorize = (req, res, next) ->
if req.params.user is req.user?.username or
req.user?.username is 'admin'
return next()
+
+ req.session.redirect = req.path
res.redirect('/login')
cache = (req, res, next) ->
- res.setHeader "Cache-Control", "public, max-age=900"
+ unless req.path is '/login'
+ res.setHeader "Cache-Control", "public, max-age=900"
next()
fetchRates = ->
@@ -69,12 +72,12 @@ app.get('/logout', sessions.destroy)
app.get('/users/new', cache, users.new)
app.post('/users', users.create)
-app.get('/:user/edit', authorize, cache, users.edit)
+app.get('/:user/edit', authorize, users.edit)
app.post('/:user', authorize, users.update)
app.get('/:user/transactions.json', authorize, transactions.json)
app.post('/:user/transactions', transactions.create)
-app.get('/:user/report', authorize, cache, transactions.index)
+app.get('/:user/report', authorize, transactions.index)
app.get('/:user.json', users.json)
app.get('/:user', cache, users.show)
diff --git a/src/routes/sessions.coffee b/src/routes/sessions.coffee
index 67efba75..30d3cdef 100644
--- a/src/routes/sessions.coffee
+++ b/src/routes/sessions.coffee
@@ -21,11 +21,9 @@ module.exports = (passport) ->
if (err)
return next(err)
- if /edit/.test(req.headers['referer'])
- url = "/#{user.username}/edit"
- else
- url = "/#{user.username}"
-
+ url = req.session.redirect if req.session.redirect?
+ url ?= "/#{user.username}"
+ delete req.session.redirect
return res.redirect(url)
)
)(req, res, next)