From 08a46f5e006f57c38a0fe97b98400941d359e95e Mon Sep 17 00:00:00 2001 From: calzoneman Date: Sun, 18 Aug 2013 14:21:42 -0500 Subject: [PATCH] Fixes --- channel.js | 20 ++++++-------------- database.js | 7 +++++++ user.js | 11 +++++------ www/assets/js/account.js | 15 ++++++++------- www/login.html | 28 ++++++++++++++++++++++++++-- 5 files changed, 52 insertions(+), 29 deletions(-) diff --git a/channel.js b/channel.js index 0b476c65..1d53a34b 100644 --- a/channel.js +++ b/channel.js @@ -119,14 +119,6 @@ var Channel = function(name, Server) { Server.db.loadChannelData(self, function () { self.dbloaded = true; - // If the channel is empty and isn't registered, the first person - // gets ownership of the channel (temporarily) - if(self.users.length == 1 && !self.registered) { - var user = self.users[0]; - user.rank = (user.rank < Rank.Owner) ? 10 : user.rank; - self.broadcastUserUpdate(user); - user.socket.emit("channelNotRegistered"); - } if(self.registered) { self.loadDump(); } @@ -710,12 +702,6 @@ Channel.prototype.userJoin = function(user) { } } - // If the channel is empty and isn't registered, the first person - // gets ownership of the channel (temporarily) - if(this.dbloaded && this.users.length == 0 && !this.registered) { - user.rank = (user.rank < Rank.Owner) ? 10 : user.rank; - user.socket.emit("channelNotRegistered"); - } this.users.push(user); this.broadcastVoteskipUpdate(); if(user.name != "") { @@ -953,6 +939,12 @@ Channel.prototype.broadcastUsercount = function() { Channel.prototype.broadcastNewUser = function(user) { var self = this; + // If the channel is empty and isn't registered, the first person + // gets ownership of the channel (temporarily) + if(self.dbloaded && self.users.length == 1 && !self.registered) { + user.rank = (user.rank < Rank.Owner) ? 10 : user.rank; + user.socket.emit("channelNotRegistered"); + } self.server.db.listAliases(user.ip, function (err, aliases) { if(err) { aliases = []; diff --git a/database.js b/database.js index a6558058..74af84c0 100644 --- a/database.js +++ b/database.js @@ -747,6 +747,11 @@ Database.prototype.userLogin = function (name, pw, session, callback) { return; } + if(row.session_hash) { + callback(null, row); + return; + } + self.createLoginSession(name, function (err, hash) { if(err) { callback(err, null); @@ -790,6 +795,7 @@ Database.prototype.userLoginPassword = function (name, pw, callback) { if(valid) { // For security, erase the password field before returning delete row["pw"]; + row.session_hash = ""; callback(null, row); return; } @@ -809,6 +815,7 @@ Database.prototype.userLoginPassword = function (name, pw, callback) { // Remove password field before returning delete row["pw"]; + row.session_hash = ""; callback(null, row); } else { callback("Invalid username/password combination", null); diff --git a/user.js b/user.js index a634064a..cc6086d2 100644 --- a/user.js +++ b/user.js @@ -475,7 +475,6 @@ User.prototype.initCallbacks = function() { self.server.db.saveUserPlaylist(pl, self.name, data.name, function (err, res) { if(err) { - console.log(typeof err); self.socket.emit("savePlaylist", { success: false, error: err @@ -628,7 +627,7 @@ User.prototype.login = function(name, pw, session) { } else { self.server.db.userLogin(name, pw, session, function (err, row) { if(err) { - self.server.actionlog.record(self.ip, self.name, "login-failure"); + self.server.actionlog.record(self.ip, name, "login-failure"); self.socket.emit("login", { success: false, error: err @@ -637,7 +636,7 @@ User.prototype.login = function(name, pw, session) { } if(self.channel != null) { for(var i = 0; i < self.channel.users.length; i++) { - if(self.channel.users[i].name == name) { + if(self.channel.users[i].name.toLowerCase() == name.toLowerCase()) { self.channel.kick(self.channel.users[i], "Duplicate login"); } } @@ -667,11 +666,11 @@ User.prototype.login = function(name, pw, session) { } }; if(self.channel !== null) { - self.channel.getRank(self.name, function (err, rank) { - if(!err && rank > self.global_rank) + self.channel.getRank(name, function (err, rank) { + if(!err) self.rank = rank; else - self.rank = self.global_rank + self.rank = self.global_rank; afterRankLookup(); }); } else { diff --git a/www/assets/js/account.js b/www/assets/js/account.js index 5ad2d614..c65cf7f9 100644 --- a/www/assets/js/account.js +++ b/www/assets/js/account.js @@ -44,9 +44,10 @@ if(uname && session) { session: session }; postJSON(WEB_URL + "/api/login?callback=?", data, function (data) { + console.log(data); if(data.success) onLogin(); - }, "jsonp"); + }); } function onLogin() { @@ -182,7 +183,7 @@ $("#registerbtn").click(function() { .text(data.error) .insertBefore($("#registerpane form")); } - }, "jsonp"); + }); }); $("#loginbtn").click(function() { @@ -217,7 +218,7 @@ $("#loginbtn").click(function() { .text(data.error) .insertBefore($("#loginpane form")); } - }, "jsonp"); + }); }); $("#cpwbtn").click(function() { @@ -279,7 +280,7 @@ $("#cpwbtn").click(function() { .text(data.error) .insertBefore($("#changepwpane form")); } - }, "jsonp"); + }); }); $("#cebtn").click(function() { @@ -332,7 +333,7 @@ $("#cebtn").click(function() { .text(data.error) .insertBefore($("#changeemailpane form")); } - }, "jsonp"); + }); }); @@ -360,7 +361,7 @@ $("#rpbtn").click(function() { .text(data.error) .insertBefore($("#pwresetpane form")); } - }, "jsonp"); + }); }); @@ -388,7 +389,7 @@ $("#profilesave").click(function() { .text(data.error) .insertBefore($("#profilepane form")); } - }, "jsonp"); + }); }); $("#login").click(function() { diff --git a/www/login.html b/www/login.html index 2ace9b2d..0e48e3c8 100644 --- a/www/login.html +++ b/www/login.html @@ -37,6 +37,30 @@