66 lines
2.7 KiB
PHP
66 lines
2.7 KiB
PHP
<?php
|
|
if($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
if(!isset($_SESSION['LOGIN']) || !isset($_SESSION['UUID'])) {
|
|
header('Location: index.php');
|
|
die();
|
|
}
|
|
|
|
include 'app/FormValidator.php';
|
|
$validator = new FormValidator(array(
|
|
'oldPassword' => array('required' => true, 'regex' => '.{1,1000}'),
|
|
'newPassword' => array('required' => true, 'regex' => '.{1,1000}'),
|
|
'newPasswordRepeat' => array('required' => true, 'regex' => '.{1,1000}')
|
|
));
|
|
|
|
if($validator->isValid($_POST)) {
|
|
if($_POST['newPasswordRepeat'] == $_POST['newPassword']) {
|
|
if(password_verify($_POST['oldPassword'], $_SESSION['PASSWORD'])) {
|
|
$hash = password_hash($NewPassword, PASSWORD_ARGON2ID);
|
|
$statement = $RUNTIME['PDO']->prepare('UPDATE auth SET passwordHash = :PasswordHash WHERE UUID = :PrincipalID');
|
|
$statement->execute(['PasswordHash' => $hash, 'PrincipalID' => $_SESSION['UUID']]);
|
|
$_SESSION['PASSWORD'] = $hash;
|
|
$_SESSION['pw_info'] = 'Neues Passwort gespeichert.';
|
|
}
|
|
else {
|
|
$_SESION['pw_info'] = 'Das alte Passwort ist nicht richtig!';
|
|
}
|
|
}
|
|
else {
|
|
$_SESSION['pw_info'] = 'Die neuen Passwörter stimmen nicht überein!';
|
|
}
|
|
}
|
|
else {
|
|
$_SESSION['pw_info'] = 'Bitte fülle das Formular vollständig aus.';
|
|
}
|
|
|
|
header('Location: index.php?page=password');
|
|
die();
|
|
}
|
|
|
|
$HTML->setHTMLTitle("Passwort ändern");
|
|
$HTML->importSeitenInhalt("profile.html");
|
|
|
|
include 'app/OpenSim.php';
|
|
$opensim = new OpenSim();
|
|
|
|
$PartnerName = "";
|
|
$PartnerUUID = $opensim->getPartner($_SESSION['UUID']);
|
|
if($PartnerUUID != null)$PartnerName = $opensim->getUserName($PartnerUUID);
|
|
|
|
$HTML->ReplaceSeitenInhalt("%%offlineIMSTATE%%", ' ');
|
|
$HTML->ReplaceSeitenInhalt("%%firstname%%", htmlspecialchars($_SESSION['FIRSTNAME']));
|
|
$HTML->ReplaceSeitenInhalt("%%lastname%%", htmlspecialchars($_SESSION['LASTNAME']));
|
|
$HTML->ReplaceSeitenInhalt("%%partner%%", htmlspecialchars($PartnerName));
|
|
$HTML->ReplaceSeitenInhalt("%%email%%", htmlspecialchars($opensim->getUserMail($_SESSION['UUID'])));
|
|
$HTML->ReplaceSeitenInhalt("%%listAllResidentsAsJSArray%%", "");
|
|
|
|
$pwInfo = '';
|
|
if(isset($_SESSION['pw_info'])) {
|
|
$pwInfo = $_SESSION['pw_info'];
|
|
unset($_SESSION['pw_info']);
|
|
}
|
|
$HTML->ReplaceSeitenInhalt("%%INFOMESSAGE%%", $pwInfo);
|
|
|
|
$HTML->build();
|
|
echo $HTML->ausgabe();
|
|
?>
|