diff options
Diffstat (limited to 'src/routes/sessions.coffee')
| -rw-r--r-- | src/routes/sessions.coffee | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/routes/sessions.coffee b/src/routes/sessions.coffee new file mode 100644 index 00000000..67efba75 --- /dev/null +++ b/src/routes/sessions.coffee @@ -0,0 +1,35 @@ +module.exports = (passport) -> + new: (req, res) -> + res.render('sessions/new', + layout: 'layout', + js: (-> global.js), + css: (-> global.css) + ) + + create: (req, res, next) -> + passport.authenticate('local', (err, user, info) -> + if (err) + return next(err) + if (!user) + return res.render('sessions/new', + layout: 'layout', + js: (-> global.js), + css: (-> global.css), + badpw: true + ) + req.login(user, (err) -> + if (err) + return next(err) + + if /edit/.test(req.headers['referer']) + url = "/#{user.username}/edit" + else + url = "/#{user.username}" + + return res.redirect(url) + ) + )(req, res, next) + + destroy: (req, res) -> + req.logout() + res.redirect('/login') |
