Send a request over the server to update user password

This commit is contained in:
Pierre 2018-04-20 08:35:43 +02:00
parent eb2a9b3947
commit e18df207e2
6 changed files with 168 additions and 2 deletions

View File

@ -0,0 +1,11 @@
/**
* Settings password section stylesheet
*
* @author Pierre HUBERT
*/
.box-password-settings .submit-form {
width: 150px;
margin: auto;
display: block;
}

View File

@ -1115,6 +1115,13 @@ var ComunicWeb = {
security: { security: {
//TODO : implement //TODO : implement
}, },
/**
* Password section
*/
password: {
//TODO : implement
},
}, },
}, },

View File

@ -68,6 +68,21 @@ ComunicWeb.components.settings.interface = {
setSecurity: function(settings, callback){ setSecurity: function(settings, callback){
var apiURI = "settings/set_security"; var apiURI = "settings/set_security";
ComunicWeb.common.api.makeAPIrequest(apiURI, settings, true, callback); ComunicWeb.common.api.makeAPIrequest(apiURI, settings, true, callback);
} },
/**
* Update the password of the user
*
* @param {string} oldPassword The old password of the user
* @param {string} newPassword The new password
* @param {function} callback
*/
updatePassword: function(oldPassword, newPassword, callback){
var apiURI = "settings/update_password";
var params = {
oldPassword: oldPassword,
newPassword: newPassword
};
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
},
} }

View File

@ -0,0 +1,125 @@
/**
* Password update section
*
* @author Pierre HUBERT
*/
ComunicWeb.pages.settings.sections.password = {
/**
* Open settings section
*
* @param {object} args Additionnal arguments
* @param {HTMLElement} target The target for the page
*/
open: function(args, target){
//Create a box
var box = createElem2({
appendTo: target,
type: "div",
class: "box box-primary box-password-settings"
});
//Add box header
var boxHead = createElem2({
appendTo: box,
type: "div",
class: "box-header",
});
var boxTitle = createElem2({
appendTo: boxHead,
type: "h3",
class: "box-title",
innerHTML: "Password update"
});
//Create box body
var boxBody = createElem2({
appendTo: box,
type: "div",
class: "box-body"
});
//Create a form contener
var formContener = createElem2({
appendTo: boxBody,
type: "div"
});
//Ask the user to enter its old password
var oldPasswordInput = createFormGroup({
target: formContener,
label: "Old password",
placeholder: "Your old (current) password",
type: "password"
});
//Ask the user to enter its new password
var newPasswordInput = createFormGroup({
target: formContener,
label: "New password",
placeholder: "Your new password",
type: "password"
});
//Ask the user to confirm its new password
var confirmNewPasswordInput = createFormGroup({
target: formContener,
label: "Confirm your password",
placeholder: "Your new password",
type: "password"
});
//Add submit button
var sendButton = createElem2({
appendTo: formContener,
type: "div",
class: "btn btn-primary submit-form",
innerHTML: "Update password"
});
//Make submit button lives
sendButton.onclick = function(){
//Check the old and the new password
if(!ComunicWeb.common.formChecker.checkInput(oldPasswordInput, true)){
notify("Please specify your old password to update your password!", "danger");
return;
}
if(!ComunicWeb.common.formChecker.checkInput(newPasswordInput, true)){
notify("Please specify a new password to update your password!", "danger");
return;
}
//Check if the old and the new password are the same or not
if(newPasswordInput.value !== confirmNewPasswordInput.value){
notify("The new password and its confirmation are not the same!", "danger");
return;
}
//Perform a request over the server
sendButton.style.visibility = "hidden";
//Perform a request over the server
ComunicWeb.components.settings.interface.updatePassword(oldPasswordInput.value, newPasswordInput.value, function(result){
sendButton.style.visibility = "visible";
//Check for errors
if(result.error){
notify("An error occurred while trying to udpate user password!", "danger");
return;
}
//Success
notify("Your password has been successfully updated !");
//Refresh current page to remove passwords (security)
ComunicWeb.common.page.refresh_current_page();
});
}
}
};

View File

@ -22,5 +22,11 @@ ComunicWeb.pages.settings.sectionsList = {
handler: "ComunicWeb.pages.settings.sections.security.open", handler: "ComunicWeb.pages.settings.sections.security.open",
}, },
/**
* Password settings
*/
password: {
title: "Password",
handler: "ComunicWeb.pages.settings.sections.password.open",
},
} }

View File

@ -168,6 +168,7 @@ class Dev {
//Sections sections //Sections sections
"css/pages/settings/sections/general.css", "css/pages/settings/sections/general.css",
"css/pages/settings/sections/security.css", "css/pages/settings/sections/security.css",
"css/pages/settings/sections/password.css",
//Latest post page stylesheet //Latest post page stylesheet
"css/pages/latestPosts/main.css", "css/pages/latestPosts/main.css",
@ -334,6 +335,7 @@ class Dev {
//Settings sections //Settings sections
"js/pages/settings/sections/general.js", "js/pages/settings/sections/general.js",
"js/pages/settings/sections/security.js", "js/pages/settings/sections/security.js",
"js/pages/settings/sections/password.js",
//Login page //Login page
"js/pages/login.js", "js/pages/login.js",