From dae7b06f4d59e16e7cf620d4045075c1278bb98d Mon Sep 17 00:00:00 2001 From: psychobunny Date: Thu, 27 Feb 2014 16:52:46 -0500 Subject: [PATCH] initial login and register routes --- src/controllers/index.js | 65 ++++++++++++++++++++++++++++++++++++++++ src/routes/api.js | 52 -------------------------------- src/webserver.js | 10 +++++-- 3 files changed, 73 insertions(+), 54 deletions(-) diff --git a/src/controllers/index.js b/src/controllers/index.js index a2f52b35ae..4f390d8085 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -1,6 +1,9 @@ var topicsController = require('./topics'), categoriesController = require('./categories'), async = require('async'), + auth = require('../routes/authentication'), + meta = require('../meta'), + plugins = require('../plugins'), categories = require('../categories'), categoryTools = require('../categoryTools'); @@ -75,5 +78,67 @@ Controllers.home = function(req, res, next) { }; +Controllers.login = function (req, res, next) { + var data = {}, + login_strategies = auth.get_login_strategies(), + num_strategies = login_strategies.length, + emailersPresent = plugins.hasListeners('action:email.send'); + + if (num_strategies == 0) { + data = { + 'login_window:spansize': 'col-md-12', + 'alternate_logins': false + }; + } else { + data = { + 'login_window:spansize': 'col-md-6', + 'alternate_logins': true + } + } + + data.authentication = login_strategies; + data.token = res.locals.csrf_token; + data.showResetLink = emailersPresent; + + if (res.locals.isAPI) { + res.json(data); + } else { + res.render('login', data); + } +}; + +Controllers.register = function (req, res, next) { + var data = {}, + login_strategies = auth.get_login_strategies(), + num_strategies = login_strategies.length; + + if (num_strategies == 0) { + data = { + 'register_window:spansize': 'col-md-12', + 'alternate_logins': false + }; + } else { + data = { + 'register_window:spansize': 'col-md-6', + 'alternate_logins': true + } + } + + data.authentication = login_strategies; + + data.token = res.locals.csrf_token; + data.minimumUsernameLength = meta.config.minimumUsernameLength; + data.maximumUsernameLength = meta.config.maximumUsernameLength; + data.minimumPasswordLength = meta.config.minimumPasswordLength; + data.termsOfUse = meta.config.termsOfUse; + + if (res.locals.isAPI) { + res.json(data); + } else { + res.render('register', data); + } +}; + + module.exports = Controllers; \ No newline at end of file diff --git a/src/routes/api.js b/src/routes/api.js index a5c9cab360..0e6a9a6796 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -85,58 +85,6 @@ var path = require('path'), } }); - app.get('/login', function (req, res) { - var data = {}, - login_strategies = auth.get_login_strategies(), - num_strategies = login_strategies.length, - emailersPresent = Plugins.hasListeners('action:email.send'); - - if (num_strategies == 0) { - data = { - 'login_window:spansize': 'col-md-12', - 'alternate_logins': false - }; - } else { - data = { - 'login_window:spansize': 'col-md-6', - 'alternate_logins': true - } - } - - data.authentication = login_strategies; - data.token = res.locals.csrf_token; - data.showResetLink = emailersPresent; - - res.json(data); - }); - - app.get('/register', function (req, res) { - var data = {}, - login_strategies = auth.get_login_strategies(), - num_strategies = login_strategies.length; - - if (num_strategies == 0) { - data = { - 'register_window:spansize': 'col-md-12', - 'alternate_logins': false - }; - } else { - data = { - 'register_window:spansize': 'col-md-6', - 'alternate_logins': true - } - } - - data.authentication = login_strategies; - - data.token = res.locals.csrf_token; - data.minimumUsernameLength = meta.config.minimumUsernameLength; - data.maximumUsernameLength = meta.config.maximumUsernameLength; - data.minimumPasswordLength = meta.config.minimumPasswordLength; - data.termsOfUse = meta.config.termsOfUse; - res.json(data); - }); - app.get('/topic/:id/:slug?', function (req, res, next) { var uid = req.user? parseInt(req.user.uid, 10) : 0; var tid = req.params.id; diff --git a/src/webserver.js b/src/webserver.js index 7316bb5f5b..7efde1418e 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -589,8 +589,8 @@ process.on('uncaughtException', function(err) { // Basic Routes (entirely client-side parsed, goal is to move the rest of the crap in this file into this one section) (function () { - var routes = ['login', 'register', 'account', '403', '404', '500'], - loginRequired = ['unread', 'notifications']; + var routes = ['register', 'account', '403', '404', '500'], + loginRequired = ['notifications']; async.each(routes.concat(loginRequired), function(route, next) { app.get('/' + route, function (req, res) { @@ -620,6 +620,12 @@ process.on('uncaughtException', function(err) { app.get('/', app.buildHeader, controllers.home); app.get('/api/home', app.prepareAPI, controllers.home); + app.get('/login', app.buildHeader, controllers.login); + app.get('/api/login', app.prepareAPI, controllers.login); + + app.get('/register', app.buildHeader, controllers.register); + app.get('/api/register', app.prepareAPI, controllers.register); + app.get('/topic/:topic_id/:slug?', app.buildHeader, controllers.topics.get); app.get('/api/topic/:topic_id/:slug?', app.prepareAPI, controllers.topics.get);