#include "RegisterPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 4 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" #include "../SingletonManager/SessionManager.h" #include "Poco/Net/HTTPCookie.h" #include "../model/Profiler.h" void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); bool _compressResponse(request.hasToken("Accept-Encoding", "gzip")); if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); #line 9 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" Profiler timeUsed; auto session = SessionManager::getInstance()->getNewSession(); bool userReturned = false; if(!form.empty()) { if(form.get("register-password2") != form.get("register-password")) { session->addError(new Error("Passwort", "Passwörter sind nicht identisch.")); } else { userReturned = session->createUser( form.get("register-first-name"), form.get("register-last-name"), form.get("register-email"), form.get("register-password") ); } if(userReturned) { auto user_host = request.clientAddress().host(); session->setClientIp(user_host); response.addCookie(session->getLoginCookie()); } } std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "