From 8b4b5f6fc7e32e8b15de6cccca9630346952cd5d Mon Sep 17 00:00:00 2001 From: Dario Date: Sun, 21 Jun 2020 10:13:51 +0200 Subject: [PATCH] add missing files --- src/cpp/HTTPInterface/RegisterDirectPage.cpp | 192 +++++++++++++++++++ src/cpp/HTTPInterface/RegisterDirectPage.h | 18 ++ 2 files changed, 210 insertions(+) create mode 100644 src/cpp/HTTPInterface/RegisterDirectPage.cpp create mode 100644 src/cpp/HTTPInterface/RegisterDirectPage.h diff --git a/src/cpp/HTTPInterface/RegisterDirectPage.cpp b/src/cpp/HTTPInterface/RegisterDirectPage.cpp new file mode 100644 index 000000000..de7899af9 --- /dev/null +++ b/src/cpp/HTTPInterface/RegisterDirectPage.cpp @@ -0,0 +1,192 @@ +#include "RegisterDirectPage.h" +#include "Poco/Net/HTTPServerRequest.h" +#include "Poco/Net/HTTPServerResponse.h" +#include "Poco/Net/HTMLForm.h" +#include "Poco/DeflatingStream.h" + + +#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp" + +#include "../SingletonManager/SessionManager.h" +#include "Poco/Net/HTTPCookie.h" +#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" + +#include "../ServerConfig.h" + + +void RegisterDirectPage::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 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp" + + 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()); + } + + userReturned = session->createUserDirect( + form.get("register-first-name", ""), + form.get("register-last-name", ""), + form.get("register-email", ""), + form.get("register-password", "") + ); + + getErrors(session); + + if(!errorCount()) { + auto user_host = request.clientAddress().host(); + session->setClientIp(user_host); + response.addCookie(session->getLoginCookie()); + response.redirect(ServerConfig::g_php_serverPath + "/"); + return; + } + } + + } else { + // on enter login page with empty form + // remove old cookies if exist + sm->deleteLoginCookies(request, response); + } + std::ostream& _responseStream = response.send(); + Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); + std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; + responseStream << "\n"; + // begin include header_old.cpsp + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "Gradido Login Server: "; +#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" + responseStream << ( pageName ); + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "\n"; + responseStream << "
\n"; + responseStream << "\t

Login Server in Entwicklung

\n"; + responseStream << "\t

Alpha "; +#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" + responseStream << ( ServerConfig::g_versionString ); + responseStream << "

\n"; + responseStream << "
\n"; + // end include header_old.cpsp + responseStream << "\n"; + responseStream << "
\n"; + responseStream << "\t

Einen neuen Account anlegen

\n"; + responseStream << "\t"; +#line 54 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp" + responseStream << ( getErrorsHtml() ); + responseStream << "\n"; + responseStream << "\t
\n"; + responseStream << "\t\t\n"; + responseStream << "\t\t
\n"; + responseStream << "\t\t\tAccount anlegen\n"; + responseStream << "\t\t\t

Bitte gebe deine Daten um einen Account anzulegen

\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t\t\n"; + responseStream << "\t\t\t

\n"; + responseStream << "\t\t
\n"; + responseStream << "\t\t\n"; + responseStream << "\t\t\n"; + responseStream << "\t
\n"; + responseStream << "
\n"; + // begin include footer.cpsp + responseStream << "\t
\n"; + responseStream << "\t\t\t"; +#line 2 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" + responseStream << ( mTimeProfiler.string() ); + responseStream << "\n"; + responseStream << "\t
\n"; + responseStream << "\n"; + responseStream << ""; + // end include footer.cpsp + responseStream << "\n"; + if (_compressResponse) _gzipStream.close(); +} diff --git a/src/cpp/HTTPInterface/RegisterDirectPage.h b/src/cpp/HTTPInterface/RegisterDirectPage.h new file mode 100644 index 000000000..3dc5d9bab --- /dev/null +++ b/src/cpp/HTTPInterface/RegisterDirectPage.h @@ -0,0 +1,18 @@ +#ifndef RegisterDirectPage_INCLUDED +#define RegisterDirectPage_INCLUDED + + +#include "Poco/Net/HTTPRequestHandler.h" + + +#include "PageRequestMessagedHandler.h" + + +class RegisterDirectPage: public PageRequestMessagedHandler +{ +public: + void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response); +}; + + +#endif // RegisterDirectPage_INCLUDED