gradido/src/cpsp/registerDirect.cpsp

97 lines
3.8 KiB
Plaintext

<%@ page class="RegisterDirectPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../controller/Group.h"
#include "../lib/DataTypeConverter.h"
#include "Poco/Net/HTTPCookie.h"
%>
<%%
const char* pageName = "Registrieren";
auto sm = SessionManager::getInstance();
bool userReturned = false;
if(!form.empty()) {
if(form.get("register-password2", "") != form.get("register-password", "")) {
addError(new Error("Passwort", "Passw&ouml;rter sind nicht identisch."), false);
} else {
auto session = sm->getSession(request);
if(!session) {
session = sm->getNewSession();
auto user_host = request.clientAddress().host();
session->setClientIp(user_host);
response.addCookie(session->getLoginCookie());
}
auto group_id_string = form.get("register-group", "0");
int group_id = 0;
if(!sm->isValid(group_id_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Group id", "group_id not integer"));
} else {
if(DataTypeConverter::strToInt(group_id_string, group_id) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting group_id to int"));
}
}
userReturned = session->createUserDirect(
form.get("register-first-name", ""),
form.get("register-last-name", ""),
form.get("register-email", ""),
form.get("register-password", ""),
group_id
);
getErrors(session);
if(!errorCount()) {
auto user_host = request.clientAddress().host();
session->setClientIp(user_host);
response.addCookie(session->getLoginCookie());
response.redirect(ServerConfig::g_serverPath + "/userUpdateGroup");
return;
}
}
} else {
// on enter login page with empty form
// remove old cookies if exist
sm->deleteLoginCookies(request, response);
}
auto groups = controller::Group::listAll();
%><%@ include file="header.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<div class="center-form-title">
<h1>Einen neuen Account anlegen</h1>
</div>
<div class="center-form-form">
<form method="POST">
<p>Bitte gib deine Daten um einen Account anzulegen:</p>
<label class="form-label" for="register-first-name">Vorname</label>
<input class="form-control" id="register-first-name" type="text" name="register-first-name" value="<%= !form.empty() ? form.get("register-first-name") : "" %>"/>
<label class="form-label" for="register-last-name">Nachname</label>
<input class="form-control" id="register-last-name" type="text" name="register-last-name" value="<%= !form.empty() ? form.get("register-last-name") : "" %>"/>
<label class="form-label" for="register-email">E-Mail</label>
<input class="form-control" id="register-email" type="email" name="register-email" value="<%= !form.empty() ? form.get("register-email") : "" %>"/>
<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-password">Passwort Best&auml;tigung</label>
<input class="form-control" id="register-password2" type="password" name="register-password2"/>
<select class="form-control" name="register-group">
<option value="0">Keine Gruppe</option>
<% for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); %>
<option title="<%= group_model->getDescription() %>" value="<%= group_model->getID() %>"><%= group_model->getName() %></option>
<% } %>
</select>
<input class="center-form-submit form-button" type="submit" name="submit" value="Anmelden">
</form>
</div>
<%@ include file="footer.cpsp" %>