mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
103 lines
3.9 KiB
Plaintext
103 lines
3.9 KiB
Plaintext
<%@ page class="UserUpdatePasswordPage" %>
|
|
<%@ page baseClass="SessionHTTPRequestHandler" %>
|
|
<%@ page ctorArg="Session*" %>
|
|
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
|
|
<%!
|
|
#include "SingletonManager/SessionManager.h"
|
|
#include "tasks/AuthenticatedEncryptionCreateKeyTask.h"
|
|
#include "Poco/Net/HTTPCookie.h"
|
|
|
|
enum PageState {
|
|
PAGE_STATE_ASK_PASSWORD,
|
|
PAGE_STATE_SUCCEED
|
|
};
|
|
|
|
%>
|
|
<%%
|
|
const char* pageName = "Passwort bestimmen";
|
|
auto user = mSession->getNewUser();
|
|
auto sm = SessionManager::getInstance();
|
|
auto uri_start = getBaseUrl();
|
|
PageState state = PAGE_STATE_ASK_PASSWORD;
|
|
|
|
// remove old cookies if exist
|
|
sm->deleteLoginCookies(request, response, mSession);
|
|
// save login cookie, because maybe we've get an new session
|
|
response.addCookie(mSession->getLoginCookie());
|
|
|
|
if(!form.empty()) {
|
|
auto pwd = form.get("register-password", "");
|
|
if(pwd != "") {
|
|
if(!mSession->getLanguageCatalog()) {
|
|
mSession->setLanguage(LANG_EN);
|
|
}
|
|
if(pwd != form.get("register-password2", "")) {
|
|
mSession->addError(new Error("Passwort", "Passwörter sind nicht identisch."), false);
|
|
} else if(SessionManager::getInstance()->checkPwdValidation(pwd, mSession, mSession->getLanguageCatalog())) {
|
|
auto sessionState = mSession->getSessionState();
|
|
|
|
if(user->setNewPassword(pwd) >= 0) {
|
|
//std::string referUri = request.get("Referer", uri_start + "/");
|
|
//printf("[updateUserPasswordPage] redirect to referUri: %s\n", referUri.data());
|
|
|
|
// I think we can savly assume that this session was loaded from verification code
|
|
//! \return 1 = konto already activated
|
|
//! -1 = invalid code
|
|
//! -2 = critical error
|
|
//! 0 = ok
|
|
auto code = mSession->getEmailVerificationCode();
|
|
int retUpdateEmailCode = 0;
|
|
if(code) {
|
|
retUpdateEmailCode = mSession->updateEmailVerification(mSession->getEmailVerificationCode());
|
|
}
|
|
//mSession->getErrors(user);
|
|
if(-2 == retUpdateEmailCode || -1 == retUpdateEmailCode || 1 == retUpdateEmailCode) {
|
|
response.redirect(uri_start + "/error500");
|
|
return;
|
|
}
|
|
if(sessionState == SESSION_STATE_RESET_PASSWORD_REQUEST) {
|
|
state = PAGE_STATE_SUCCEED;
|
|
mSession->updateState(SESSION_STATE_RESET_PASSWORD_SUCCEED);
|
|
sm->deleteLoginCookies(request, response, mSession);
|
|
sm->releaseSession(mSession);
|
|
mSession = nullptr;
|
|
} else {
|
|
response.redirect(uri_start + "/passphrase");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(mSession) {
|
|
getErrors(mSession);
|
|
}
|
|
//getErrors(user);
|
|
//printf("session state end [UpdateUserPassword Page]: %s\n", mSession->getSessionStateString());
|
|
%><%@ include file="include/header.cpsp" %>
|
|
<%= getErrorsHtml() %>
|
|
<div class="center-form-container">
|
|
<% if(PAGE_STATE_ASK_PASSWORD == state ) { %>
|
|
<div class="center-form-title">
|
|
<h1>Passwort bestimmen</h1>
|
|
</div>
|
|
<div class="center-form-form">
|
|
<form method="POST">
|
|
<p>
|
|
Bitte denke dir ein sicheres Passwort aus, das mindestens 8 Zeichen lang ist, einen Klein- und einen Großbuchstaben enthält,
|
|
eine Zahl und ein Sonderzeichen.
|
|
</p>
|
|
<label class="form-label" for="register-password">Passwort</label>
|
|
<input class="form-control" id="register-password" type="password" name="register-password"/>
|
|
<label class="form-label" for="register-password2">Passwort Bestätigung</label>
|
|
<input class="form-control" id="register-password2" type="password" name="register-password2"/>
|
|
<input class="grd-form-bn grd-form-bn-succeed grd_clickable" type="submit" name="submit" value="Änderung(en) speichern">
|
|
</form>
|
|
<% } else if(PAGE_STATE_SUCCEED == state) { %>
|
|
<p>Deine Daten werden jetzt mit dem neuen Passwort verschlüsselt. Du kannst dich in etwa 1 Minute mit deinem neuen Passwort einloggen</p>
|
|
<a class="link-button" href="<%= uri_start %>/login">Zum Login</a>
|
|
<% } %>
|
|
</div>
|
|
</div>
|
|
<%@ include file="include/footer.cpsp" %>
|