From 029b6a60b7bd4011492cd91bececc298418a9297 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Tue, 21 Apr 2020 14:46:13 +0530 Subject: [PATCH 1/3] Added username check before continuing --- js/firstscreen.js | 29 +++++++++++++++++++++++++++++ lib/server.js | 10 ++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/js/firstscreen.js b/js/firstscreen.js index f51963f84..87ce66eb9 100644 --- a/js/firstscreen.js +++ b/js/firstscreen.js @@ -257,6 +257,8 @@ enyo.kind({ this.step++; if (util.getClientType() == constant.appType && (this.createnew || !this.$.server.getValue())) { // No password for the app when create new or server is null this.step++; + } else { + this.checkUsername(name); } this.displayStep(); } else if (this.step == 3) { @@ -423,6 +425,33 @@ enyo.kind({ } }, + checkUsername: function(name) { + var that = this; + that.$.spinner.setShowing(true); + myserver.postUser( + { + name: name, + role: "student", + beforeSignup: true + }, + function(inSender, inResponse) { + // Username is unique + that.$.spinner.setShowing(false); + }, + function(response, error) { + that.$.spinner.setShowing(false); + that.step--; + that.displayStep(); + if (error == 22) { + that.$.warningmessage.setContent(l10n.get("UserAlreadyExist")); + } else { + that.$.warningmessage.setContent(l10n.get("ServerError", {code: error})); + } + that.$.warningmessage.setShowing(true); + } + ); + }, + createUser: function() { var that = this; myserver.postUser( diff --git a/lib/server.js b/lib/server.js index 8ba878b87..3f9f8f6a5 100644 --- a/lib/server.js +++ b/lib/server.js @@ -148,10 +148,12 @@ define(["settings"], function(preferences) { } }); ajax.response(function(inSender, inResponse) { - var newuser = {"name": user.name, "password": user.password}; - server.loginUser(newuser, function(loginSender, loginResponse) { - preferences.setToken({'x_key': inResponse._id, 'access_token': loginResponse.token}); - }); + if(!user.beforeSignup) { + var newuser = {"name": user.name, "password": user.password}; + server.loginUser(newuser, function(loginSender, loginResponse) { + preferences.setToken({'x_key': inResponse._id, 'access_token': loginResponse.token}); + }); + } if (response) response(inSender, inResponse); }); ajax.error(function(inResponse) { From 28e31117ea5c697186076a3da377abcf3892ae35 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Sun, 26 Apr 2020 03:35:55 +0530 Subject: [PATCH 2/3] Fixed createnew check --- js/firstscreen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/firstscreen.js b/js/firstscreen.js index 87ce66eb9..d07e40912 100644 --- a/js/firstscreen.js +++ b/js/firstscreen.js @@ -257,7 +257,7 @@ enyo.kind({ this.step++; if (util.getClientType() == constant.appType && (this.createnew || !this.$.server.getValue())) { // No password for the app when create new or server is null this.step++; - } else { + } else if(this.createnew) { this.checkUsername(name); } this.displayStep(); From ddfb499a20ec7575aaced5480ab100e9bcc3bbd5 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Wed, 29 Apr 2020 01:43:28 +0530 Subject: [PATCH 3/3] Fixed UI; Added backward compatibility --- js/firstscreen.js | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/js/firstscreen.js b/js/firstscreen.js index d07e40912..08deb2337 100644 --- a/js/firstscreen.js +++ b/js/firstscreen.js @@ -254,10 +254,13 @@ enyo.kind({ if (name.length == 0) { return; } - this.step++; + if (util.getClientType() == constant.appType && (this.createnew || !this.$.server.getValue())) { // No password for the app when create new or server is null + this.step += 2; + this.displayStep(); + } else if(!this.createnew) { // Login this.step++; - } else if(this.createnew) { + } else { // Signup this.checkUsername(name); } this.displayStep(); @@ -435,19 +438,29 @@ enyo.kind({ beforeSignup: true }, function(inSender, inResponse) { - // Username is unique + if(!inResponse.exists) { + // Username unique + that.step++; + that.displayStep(); + } that.$.spinner.setShowing(false); }, function(response, error) { - that.$.spinner.setShowing(false); - that.step--; - that.displayStep(); - if (error == 22) { - that.$.warningmessage.setContent(l10n.get("UserAlreadyExist")); + if(error == 2) { + // Server does not support fix -> old workflow + that.step++; + that.displayStep(); } else { - that.$.warningmessage.setContent(l10n.get("ServerError", {code: error})); + // Server supports fix -> new workflow + if(error == 22) { + // Username already exists + that.$.warningmessage.setContent(l10n.get("UserAlreadyExist")); + } else { + that.$.warningmessage.setContent(l10n.get("ServerError", {code: error})); + } + that.$.warningmessage.setShowing(true); } - that.$.warningmessage.setShowing(true); + that.$.spinner.setShowing(false); } ); },