mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-27 14:29:22 +00:00
136 lines
3.2 KiB
JavaScript
136 lines
3.2 KiB
JavaScript
/**
|
|
* 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 = new PasswordInput(
|
|
formContener,
|
|
tr("New password"),
|
|
tr("Your new password")
|
|
);
|
|
(async () => {
|
|
try {
|
|
let user = await userInfo(userID());
|
|
newPasswordInput.setUser(user)
|
|
|
|
let mail = await AccountInterface.getMail()
|
|
newPasswordInput.setEmail(mail)
|
|
} catch(e) {
|
|
console.error(e);
|
|
notify(tr("Failed to load your information to prepare password update!"), "danger");
|
|
}
|
|
})();
|
|
|
|
//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(tr("Please specify your old password to update your password!"), "danger");
|
|
return;
|
|
}
|
|
|
|
if(!newPasswordInput.isValid()){
|
|
notify(tr("Please specify a valid new password!"), "danger");
|
|
return;
|
|
}
|
|
|
|
//Check if the old and the new password are the same or not
|
|
if(newPasswordInput.value !== confirmNewPasswordInput.value){
|
|
notify(tr("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(tr("An error occurred while trying to update user password!"), "danger");
|
|
return;
|
|
}
|
|
|
|
//Success
|
|
notify(tr("Your password has been successfully updated !"));
|
|
|
|
//Refresh current page to remove passwords (security)
|
|
ComunicWeb.common.page.refresh_current_page();
|
|
});
|
|
}
|
|
}
|
|
|
|
}; |