. * --------------------------------------------------------------------- */ include ('../inc/includes.php'); use Glpi\Exception\PasswordTooWeakException; Session::checkLoginUser(); switch (Session::getCurrentInterface()) { case 'central': Html::header(__('Update password'), $_SERVER['PHP_SELF']); break; case 'helpdesk': Html::helpHeader(__('Update password'), $_SERVER['PHP_SELF']); break; default: Html::simpleHeader(__('Update password')); break; } $user = new User(); $user->getFromDB(Session::getLoginUserID()); $success = false; $error_messages = []; if (array_key_exists('update', $_POST)) { $current_password = $_POST['current_password']; if (!Auth::checkPassword($current_password, $user->fields['password'])) { $error_messages = [__('Incorrect password')]; } else { $input = [ 'id' => $user->fields['id'], 'current_password' => $_POST['current_password'], 'password' => $_POST['password'], 'password2' => $_POST['password2'], ]; if ($input['password'] === $input['current_password']) { $error_messages = [__('The new password must be different from current password')]; } else if ($input['password'] !== $input['password2']) { $error_messages = [__('The two passwords do not match')]; } else { try { Config::validatePassword($input['password'], false); if ($user->update($input)) { $success = true; } else { $error_messages = [__('An error occured during password update')]; } } catch (PasswordTooWeakException $exception) { $error_messages = $exception->getMessages(); } } } } if ($success) { echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . __('Password update') . '
'; echo __('Your password has been successfully updated.'); echo '
'; echo '' . __('Log in') . ''; echo '
'; } else { $user->showPasswordUpdateForm($error_messages); } switch (Session::getCurrentInterface()) { case 'central': Html::footer(); break; case 'helpdesk': Html::helpFooter(); break; default: Html::nullFooter(); break; }