mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
97 lines
3.8 KiB
Plaintext
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ö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ä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" %>
|