mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-26 05:49:22 +00:00
Update login page
This commit is contained in:
parent
75f926d0c6
commit
9dfe0e39eb
@ -365,54 +365,6 @@ var ComunicWeb = {
|
|||||||
deleteLoginTokens: function(){},
|
deleteLoginTokens: function(){},
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* Manage user login
|
|
||||||
*/
|
|
||||||
userLogin: {
|
|
||||||
/**
|
|
||||||
* @var {Boolean} Store user login state (true by default)
|
|
||||||
*/
|
|
||||||
__userLogin: true,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var {Integer} Store the current user ID
|
|
||||||
*/
|
|
||||||
__userID: 0,
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tell if user is logged in or not
|
|
||||||
*/
|
|
||||||
getUserLoginState: function(){},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get user ID (if logged in)
|
|
||||||
*/
|
|
||||||
getUserID: function(){},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Try to get and store current user ID
|
|
||||||
*/
|
|
||||||
getCurrentUserId: function(afterGetCurrentUserID){},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refresh the user login state
|
|
||||||
*/
|
|
||||||
refreshLoginState: function(afterLogin){},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Try to login user
|
|
||||||
*/
|
|
||||||
loginUser: function(usermail, userpassword, permanentLogin, afterLogin){},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Logout user
|
|
||||||
*/
|
|
||||||
logoutUser: function(afterLogout){},
|
|
||||||
|
|
||||||
//TODO : implement
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get user infos
|
* Get user infos
|
||||||
*/
|
*/
|
||||||
|
@ -59,9 +59,9 @@ ComunicWeb.common.system = {
|
|||||||
ComunicWeb.components.darkTheme.refresh();
|
ComunicWeb.components.darkTheme.refresh();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* What to do after login refresh
|
* Get login state
|
||||||
*/
|
*/
|
||||||
var afterLoginRefresh = async function(){
|
await UserLogin.refreshLoginState();
|
||||||
|
|
||||||
// Initialize Websocket if user is connected
|
// Initialize Websocket if user is connected
|
||||||
if(signed_in()) {
|
if(signed_in()) {
|
||||||
@ -82,15 +82,6 @@ ComunicWeb.common.system = {
|
|||||||
|
|
||||||
//End of init
|
//End of init
|
||||||
ComunicWeb.debug.logMessage("Application is ready !");
|
ComunicWeb.debug.logMessage("Application is ready !");
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get login state
|
|
||||||
*/
|
|
||||||
ComunicWeb.user.userLogin.refreshLoginState(afterLoginRefresh);
|
|
||||||
|
|
||||||
//Success
|
|
||||||
return true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,7 +67,6 @@ ComunicWeb.pages.login = {
|
|||||||
var loginButton = loginBody.getElementsByClassName("btn-login")[0];
|
var loginButton = loginBody.getElementsByClassName("btn-login")[0];
|
||||||
|
|
||||||
//Make the login action accessible
|
//Make the login action accessible
|
||||||
//loginButton.onclick = ComunicWeb.pages.login.loginSubmit;
|
|
||||||
loginBody.onsubmit = ComunicWeb.pages.login.loginSubmit;
|
loginBody.onsubmit = ComunicWeb.pages.login.loginSubmit;
|
||||||
|
|
||||||
|
|
||||||
@ -103,9 +102,7 @@ ComunicWeb.pages.login = {
|
|||||||
)){
|
)){
|
||||||
//Error notification
|
//Error notification
|
||||||
ComunicWeb.common.notificationSystem.showNotification(lang("_login_page_bad_input"), "error");
|
ComunicWeb.common.notificationSystem.showNotification(lang("_login_page_bad_input"), "error");
|
||||||
|
return;
|
||||||
//Stop function execution
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Enable overlay (use .remove() to remove)
|
//Enable overlay (use .remove() to remove)
|
||||||
@ -117,7 +114,7 @@ ComunicWeb.pages.login = {
|
|||||||
var permanentLogin = rememberLoginInput.checked;
|
var permanentLogin = rememberLoginInput.checked;
|
||||||
|
|
||||||
//What to do once user is logged in (or not)
|
//What to do once user is logged in (or not)
|
||||||
var afterTryLogin = function(loginResult){
|
var afterTryLogin = (loginResult) => {
|
||||||
|
|
||||||
//First, remove overlay
|
//First, remove overlay
|
||||||
screenOverlay.remove();
|
screenOverlay.remove();
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* @author Pierre HUBERT
|
* @author Pierre HUBERT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ComunicWeb.user.userLogin = {
|
const UserLogin = {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var {Boolean} Store user login state (true by default)
|
* @var {Boolean} Store user login state (true by default)
|
||||||
@ -28,8 +28,7 @@ ComunicWeb.user.userLogin = {
|
|||||||
*
|
*
|
||||||
* @return {Boolean} Depend of the result
|
* @return {Boolean} Depend of the result
|
||||||
*/
|
*/
|
||||||
getUserLoginState: function(){
|
getUserLoginState: function() {
|
||||||
//Return login state
|
|
||||||
return this.__userLogin;
|
return this.__userLogin;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -38,35 +37,35 @@ ComunicWeb.user.userLogin = {
|
|||||||
*
|
*
|
||||||
* @return {String.Boolean} User ID or false if not logged in
|
* @return {String.Boolean} User ID or false if not logged in
|
||||||
*/
|
*/
|
||||||
getUserID: function(){
|
getUserID: function() {
|
||||||
//If user is logged in
|
//If user is logged in
|
||||||
if(this.getUserLoginState() === true){
|
if(this.getUserLoginState() === true){
|
||||||
//Return user ID
|
|
||||||
return this.__userID;
|
return this.__userID;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to get and store current user ID
|
* Try to get and store current user ID
|
||||||
*
|
|
||||||
* @param {function} afterGetCurrentUserID What to do next
|
|
||||||
* @return {Integer} 0 if it fails
|
|
||||||
*/
|
*/
|
||||||
getCurrentUserId: function(afterGetCurrentUserID){
|
async getCurrentUserId(){
|
||||||
//Prepare and make an API request
|
try {
|
||||||
var apiURI = "user/getCurrentUserID";
|
const result = await api("account/id", {}, true);
|
||||||
var params = {};
|
|
||||||
var requireLoginTokens = true;
|
// Update user ID
|
||||||
|
ComunicWeb.user.userLogin.__userID = result.userID;
|
||||||
|
|
||||||
|
//Notify about the event
|
||||||
|
SendEvent("got_user_id", {
|
||||||
|
userID: result.userID
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch(e) {
|
||||||
|
|
||||||
//What to do after the request is completed
|
|
||||||
var afterAPIrequest = function(result){
|
|
||||||
//Check if we got any error
|
|
||||||
if(result.error){
|
|
||||||
//Set user ID to 0 (security purpose)
|
//Set user ID to 0 (security purpose)
|
||||||
ComunicWeb.user.userLogin.__userID = 0;
|
ComunicWeb.user.userLogin.__userID = 0;
|
||||||
|
|
||||||
//If error is 412, make user as logged out
|
//If error is 412, make user as logged out
|
||||||
if(result.error.code == 412){
|
if(result.error.code == 412) {
|
||||||
ComunicWeb.user.userLogin.__userLogin = false;
|
ComunicWeb.user.userLogin.__userLogin = false;
|
||||||
ComunicWeb.user.loginTokens.deleteLoginTokens();
|
ComunicWeb.user.loginTokens.deleteLoginTokens();
|
||||||
|
|
||||||
@ -74,64 +73,30 @@ ComunicWeb.user.userLogin = {
|
|||||||
ComunicWeb.common.system.restart();
|
ComunicWeb.common.system.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Perform next action
|
|
||||||
afterGetCurrentUserID(0);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//Update user ID
|
|
||||||
ComunicWeb.user.userLogin.__userID = result.userID;
|
|
||||||
|
|
||||||
//Perform next action
|
|
||||||
afterGetCurrentUserID(result.userID);
|
|
||||||
|
|
||||||
//Notify about the event
|
|
||||||
SendEvent("got_user_id", {
|
|
||||||
userID: result.userID
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
//Perform request
|
|
||||||
ComunicWeb.common.api.makeAPIrequest(apiURI, params, requireLoginTokens, afterAPIrequest);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refresh the user login state
|
* Refresh the user login state
|
||||||
*
|
|
||||||
* @param {Function} afterRefresh Optionnal, what to do after refreshing login
|
|
||||||
*/
|
*/
|
||||||
refreshLoginState: function(afterRefresh){
|
refreshLoginState: async function() {
|
||||||
//First, check if we have login tokens
|
// First, check if we have login tokens
|
||||||
if(ComunicWeb.user.loginTokens.checkLoginTokens() !== true){
|
if(ComunicWeb.user.loginTokens.checkLoginTokens() !== true) {
|
||||||
//Specify the user isn't logged in
|
//Specify the user isn't logged in
|
||||||
this.__userLogin = false;
|
this.__userLogin = false;
|
||||||
this.__userID = 0;
|
this.__userID = 0;
|
||||||
|
|
||||||
//If there is a next action, do it (even if user isn't logged in)
|
return;
|
||||||
if(afterRefresh){
|
|
||||||
afterRefresh();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//User not logged in
|
// Try to use tokens to get user infos
|
||||||
return false;
|
await UserLogin.getCurrentUserId();
|
||||||
}
|
|
||||||
|
|
||||||
//Try to use tokens to get user infos
|
|
||||||
var nextStep = function(userID){
|
|
||||||
//We check received data
|
//We check received data
|
||||||
if(userID == 0){
|
if(this.__userID == 0){
|
||||||
//We consider user is not logged in
|
// We consider user is not logged in
|
||||||
ComunicWeb.user.userLogin.__userLogin = false;
|
ComunicWeb.user.userLogin.__userLogin = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//If there is a next action, do it
|
|
||||||
if(afterRefresh){
|
|
||||||
afterRefresh();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
this.getCurrentUserId(nextStep);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -142,22 +107,12 @@ ComunicWeb.user.userLogin = {
|
|||||||
* @param {Boolean} permanentLogin Specify wether the login is permanent or not
|
* @param {Boolean} permanentLogin Specify wether the login is permanent or not
|
||||||
* @param {function} afterLogin What to do next
|
* @param {function} afterLogin What to do next
|
||||||
*/
|
*/
|
||||||
loginUser: function(usermail, userpassword, permanentLogin, afterLogin){
|
loginUser: async function(usermail, userpassword, permanentLogin, afterLogin) {
|
||||||
//Prepare and make an API request
|
try {
|
||||||
var apiURI = "user/connectUSER";
|
const result = await api("account/login", {
|
||||||
var params = {
|
mail: usermail,
|
||||||
userMail: usermail,
|
password: userpassword,
|
||||||
userPassword: userpassword,
|
})
|
||||||
};
|
|
||||||
|
|
||||||
//What to do after the request is completed
|
|
||||||
const afterAPIrequest = async function(result){
|
|
||||||
//Prepare data return
|
|
||||||
var loginstate = false;
|
|
||||||
|
|
||||||
//Check if there is a success message
|
|
||||||
if(result.success){
|
|
||||||
loginstate = true;
|
|
||||||
|
|
||||||
//Log
|
//Log
|
||||||
ComunicWeb.debug.logMessage("User login " + usermail + " successful !");
|
ComunicWeb.debug.logMessage("User login " + usermail + " successful !");
|
||||||
@ -174,23 +129,15 @@ ComunicWeb.user.userLogin = {
|
|||||||
}
|
}
|
||||||
ComunicWeb.user.loginTokens.setUserTokens(result.tokens, storageType);
|
ComunicWeb.user.loginTokens.setUserTokens(result.tokens, storageType);
|
||||||
|
|
||||||
//Save email address
|
// Save email address
|
||||||
ComunicWeb.components.mailCaching.set(usermail);
|
ComunicWeb.components.mailCaching.set(usermail);
|
||||||
|
|
||||||
// Initialize websocket
|
// Initialize websocket
|
||||||
await UserWebSocket.Connect();
|
await UserWebSocket.Connect();
|
||||||
await UserWebSocket.WaitForConnected();
|
await UserWebSocket.WaitForConnected();
|
||||||
}
|
|
||||||
|
|
||||||
//Perform next action if login failed
|
// Else refresh login state to get user ID
|
||||||
if(!loginstate) {
|
await this.refreshLoginState();
|
||||||
ComunicWeb.user.userLogin._last_attempt_response_code = result.error.code;
|
|
||||||
afterLogin(loginstate);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Else refresh login state to get user ID
|
|
||||||
ComunicWeb.user.userLogin.refreshLoginState(function(){
|
|
||||||
|
|
||||||
//Then get and apply user language settings
|
//Then get and apply user language settings
|
||||||
ComunicWeb.components.settings.interface.getLanguage(function(lang){
|
ComunicWeb.components.settings.interface.getLanguage(function(lang){
|
||||||
@ -198,18 +145,14 @@ ComunicWeb.user.userLogin = {
|
|||||||
if(!lang.error)
|
if(!lang.error)
|
||||||
ComunicWeb.common.langs.setLang(lang.lang);
|
ComunicWeb.common.langs.setLang(lang.lang);
|
||||||
|
|
||||||
//And then we'll be able to perform next action
|
|
||||||
afterLogin(true);
|
afterLogin(true);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
} catch(e) {
|
||||||
});
|
UserLogin._last_attempt_response_code = e.code;
|
||||||
|
afterLogin(false);
|
||||||
};
|
}
|
||||||
|
|
||||||
//Perform request
|
|
||||||
ComunicWeb.common.api.makeAPIrequest(apiURI, params, false, afterAPIrequest);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -259,3 +202,5 @@ ComunicWeb.user.userLogin = {
|
|||||||
return this._last_attempt_response_code;
|
return this._last_attempt_response_code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ComunicWeb.user.userLogin = UserLogin;
|
Loading…
Reference in New Issue
Block a user