diff options
| author | Adam Soltys <[email protected]> | 2014-08-23 19:04:14 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2014-08-23 19:04:14 -0700 |
| commit | affe228986f76b06aa96b3789852a01f8a950644 (patch) | |
| tree | 77167a378a23c5eb3154c9b1e1b30f2b24ceb1ae | |
| parent | bba3ba38ec86ea98a456f56c596c9f8006e7516b (diff) | |
| download | coinos-server-affe228986f76b06aa96b3789852a01f8a950644.tar.gz coinos-server-affe228986f76b06aa96b3789852a01f8a950644.zip | |
Direct to originally requested page after authorization
| -rw-r--r-- | app.js | 9 | ||||
| -rw-r--r-- | routes/sessions.js | 8 | ||||
| -rw-r--r-- | src/app.coffee | 9 | ||||
| -rw-r--r-- | src/routes/sessions.coffee | 8 |
4 files changed, 20 insertions, 14 deletions
@@ -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) |
