diff --git a/public/templates/register.tpl b/public/templates/register.tpl index d4176eb6e5..f374c3ea27 100644 --- a/public/templates/register.tpl +++ b/public/templates/register.tpl @@ -45,7 +45,11 @@ }; username.onkeyup = function() { - socket.emit('user.exists', {username: username.value}); + if (username.value.length > 2) socket.emit('user.exists', {username: username.value}); + else { + username_notify.innerHTML = 'Username too short'; + username_notify.className = 'label label-important'; + } } emailEl.addEventListener('change', function() { console.log('checking email existance'); diff --git a/public/templates/reset.tpl b/public/templates/reset.tpl index 2286997cbf..eb7ee02fcf 100644 --- a/public/templates/reset.tpl +++ b/public/templates/reset.tpl @@ -1,24 +1,35 @@

Reset Password

+ + Password Reset Sent +

+
+
- + \ No newline at end of file diff --git a/src/user.js b/src/user.js index bb399ddff2..c1e2551606 100644 --- a/src/user.js +++ b/src/user.js @@ -95,12 +95,31 @@ var RDB = require('./redis.js'); RDB.get('username:' + username + ':uid', callback); }; + User.send_reset = function(email) { + User.email.exists(email, function(exists) { + if (exists) { + global.socket.emit('user.send_reset', { + status: "ok", + message: "code-sent", + email: email + }); + } else { + global.socket.emit('user.send_reset', { + status: "error", + message: "invalid-email", + email: email + }); + } + }); + } + User.email = { - exists: function(email) { + exists: function(email, callback) { RDB.get('email:' + email, function(exists) { console.log('email:' + email, exists); exists = !!exists; - global.socket.emit('user.email.exists', { exists: exists }); + if (typeof callback !== 'function') global.socket.emit('user.email.exists', { exists: exists }); + else callback(exists); }); } } diff --git a/src/webserver.js b/src/webserver.js index b131c19330..9e0361c677 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -29,10 +29,9 @@ var express = require('express'), app.use(express.favicon()); app.use(express.bodyParser()); app.use(express.cookieParser()); - app.use(express.logger({ format: '\x1b[1m:method\x1b[0m \x1b[33m:url\x1b[0m :response-time ms' })); - app.use(express.methodOverride()); + // app.use(express.logger({ format: '\x1b[1m:method\x1b[0m \x1b[33m:url\x1b[0m :response-time ms' })); + // app.use(express.methodOverride()); app.use(express.static(global.configuration.ROOT_DIRECTORY + '/public')); - app.set('mailOptions', config.mailer); }); } diff --git a/src/websockets.js b/src/websockets.js index ea3486d18a..6769704f6c 100644 --- a/src/websockets.js +++ b/src/websockets.js @@ -22,6 +22,7 @@ var SocketIO = require('socket.io').listen(global.server); socket.emit('event:connect', {status: 1}); // BEGIN: API calls (todo: organize) + // julian: :^) socket.on('user.create', function(data) { modules.user.create(data.username, data.password, data.email); }); @@ -45,6 +46,10 @@ var SocketIO = require('socket.io').listen(global.server); socket.on('user.email.exists', function(data) { modules.user.email.exists(data.email); }); + + socket.on('user.send_reset', function(data) { + modules.user.send_reset(data.email); + }); }); }(SocketIO));