From 087f612b37dce4109eb12f82d660bb5278337208 Mon Sep 17 00:00:00 2001 From: calzoneman Date: Thu, 25 Apr 2013 23:04:51 -0500 Subject: [PATCH] Bugfixes for last commit - Fix race condition for login frame - Fix guest logins --- api.js | 17 +++++++++++++++++ package.json | 2 +- server.js | 2 +- user.js | 2 +- www/assets/js/callbacks.js | 2 +- www/assets/js/functions.js | 13 ++++++++----- www/assets/js/media.js | 1 - www/login.html | 1 + 8 files changed, 30 insertions(+), 10 deletions(-) diff --git a/api.js b/api.js index b4317e18..bd5471dc 100644 --- a/api.js +++ b/api.js @@ -126,6 +126,23 @@ function handleLogin(params, req, res) { var name = params.name || ""; var pw = params.pw || ""; + if(pw == "") { + if(!Auth.isRegistered(name)) { + sendJSON(res, { + success: true, + session: "" + }); + return; + } + else { + sendJSON(res, { + success: false, + error: "That username is already taken" + }); + return; + } + } + var row = Auth.login(name, pw, session); if(row) { sendJSON(res, { diff --git a/package.json b/package.json index 3d2fa18b..5b1cdcec 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Calvin Montgomery", "name": "CyTube", "description": "Online media synchronizer and chat", - "version": "1.3.0", + "version": "1.3.1", "repository": { "url": "http://github.com/calzoneman/sync" }, diff --git a/server.js b/server.js index 27568552..56bc857e 100644 --- a/server.js +++ b/server.js @@ -9,7 +9,7 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -const VERSION = "1.3.0"; +const VERSION = "1.3.1"; var fs = require("fs"); var Logger = require("./logger.js"); diff --git a/user.js b/user.js index 177cf219..0ff04b14 100644 --- a/user.js +++ b/user.js @@ -398,7 +398,7 @@ User.prototype.login = function(name, pw, session) { else { this.socket.emit("login", { success: false, - error: "Invalid username/password pair" + error: "Invalid session" }); return false; } diff --git a/www/assets/js/callbacks.js b/www/assets/js/callbacks.js index c2f045e2..12f99f1b 100644 --- a/www/assets/js/callbacks.js +++ b/www/assets/js/callbacks.js @@ -143,7 +143,7 @@ function initCallbacks() { $("#loginform").css("display", "none"); $("#logoutform").css("display", ""); $("#loggedin").css("display", ""); - session = data.session; + session = data.session || ""; createCookie("sync_uname", uname, 7); createCookie("sync_session", session, 7); } diff --git a/www/assets/js/functions.js b/www/assets/js/functions.js index 63f4bcfa..b02e2f69 100644 --- a/www/assets/js/functions.js +++ b/www/assets/js/functions.js @@ -863,7 +863,13 @@ function showLoginFrame() { .css("height", "300px") .css("margin", "0") .appendTo(body); + var timer = setInterval(function() { + frame[0].contentWindow.postMessage("cytube-syn", document.location); + }, 1000); var respond = function(e) { + if(e.data == "cytube-ack") { + clearInterval(timer); + } if(e.data.indexOf(":") == -1) { return; } @@ -874,8 +880,8 @@ function showLoginFrame() { alert(data.error); } else if(data.success) { - session = data.session; - uname = data.uname; + session = data.session || ""; + uname = data.uname || ""; socket.emit("login", { name: uname, session: session @@ -900,9 +906,6 @@ function showLoginFrame() { // their shit together window.attachEvent("onmessage", respond); } - setTimeout(function() { - frame[0].contentWindow.postMessage("cytube-syn", document.location); - }, 1000); var footer = $("
").addClass("modal-footer").appendTo(modal); modal.on("hidden", function() { modal.remove(); diff --git a/www/assets/js/media.js b/www/assets/js/media.js index 16d9129d..23911f33 100644 --- a/www/assets/js/media.js +++ b/www/assets/js/media.js @@ -279,7 +279,6 @@ Media.prototype.initRTMP = function() { } Media.prototype.update = function(data) { - console.log(parseInt(data.currentTime / 60), parseInt(data.currentTime % 60)); if(data.id != this.id) { if(data.currentTime < 0) { data.currentTime = 0; diff --git a/www/login.html b/www/login.html index ecc044af..8679bdd5 100644 --- a/www/login.html +++ b/www/login.html @@ -38,6 +38,7 @@ var respond = function(e) { if(e.data == "cytube-syn") { source = e.source; + source.postMessage("cytube-ack", document.location); } } window.addEventListener("message", respond, false);