#include "UserUpdateGroupPage.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\\userUpdateGroup.cpsp" #include "../controller/Group.h" #include "../SingletonManager/SessionManager.h" #include "../SingletonManager/PendingTasksManager.h" #include "../lib/DataTypeConverter.h" #include "../model/gradido/Transaction.h" enum PageState { PAGE_STATE_OVERVIEW, PAGE_STATE_REQUEST_IS_RUNNING, PAGE_STATE_NO_GROUPS }; #line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" #include "../ServerConfig.h" UserUpdateGroupPage::UserUpdateGroupPage(Session* arg): SessionHTTPRequestHandler(arg) { } void UserUpdateGroupPage::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 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" const char* pageName = gettext("Gruppe wählen"); auto user = mSession->getNewUser(); auto sm = SessionManager::getInstance(); auto pt = PendingTasksManager::getInstance(); PageState state = PAGE_STATE_OVERVIEW; auto groups = controller::Group::listAll(); if(!form.empty()) { auto group_id_string = form.get("group_id", ""); if(group_id_string == "") { addError(new Error(gettext("Fehler"), gettext("HTML Form Fehler"))); } else { int group_id = 0; if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(group_id_string, group_id)) { std::string group_alias = ""; Poco::AutoPtr choosen_group; for(auto it = groups.begin(); it != groups.end(); it++) { auto group_model = (*it)->getModel(); if(group_model->getID() == group_id) { choosen_group = *it; } } if(choosen_group.isNull()) { addError(new Error(gettext("Fehler"), gettext("Interner Fehler"))); } else { auto addGroupMemberTransaction = model::gradido::Transaction::createGroupMemberUpdate(user, choosen_group); response.redirect(ServerConfig::g_serverPath + "/checkTransactions"); return; state = PAGE_STATE_REQUEST_IS_RUNNING; } } else { addError(new Error(gettext("Fehler"), gettext("HTML Value Type Fehler"))); } } } else { if(groups.size() == 0) { if(user->getModel()->getRole() == model::table::ROLE_ADMIN) { response.redirect(ServerConfig::g_serverPath + "/groups"); return; } state = PAGE_STATE_NO_GROUPS; } else { pt->lock("userUpdateGroup Page"); if(pt->hasPendingTask(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER)) { state = PAGE_STATE_REQUEST_IS_RUNNING; std::vector> tasks = pt->getPendingTasks(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); // should be only one Poco::AutoPtr transaction = tasks[0].cast(); if(transaction->getSignCount() == 0) { pt->unlock(); response.redirect(user->getGroupBaseUrl() + "/checkTransactions"); return; } } pt->unlock(); } } #line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" bool withMaterialIcons = false; 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.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; #line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" if(withMaterialIcons) { responseStream << "\n"; responseStream << "\n"; #line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" } responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " "; // end include header.cpsp responseStream << "\n"; #line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "\t"; #line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" if(PAGE_STATE_OVERVIEW == state ) { responseStream << "\n"; responseStream << "
\n"; responseStream << "

"; #line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Gruppe wählen") ); responseStream << "

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

"; #line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Bitte wähle die Gruppe/Gemeinschaft aus, zu der du gehörst.") ); responseStream << "

\n"; responseStream << "\t

"; #line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Du bekommst eine Bestätigungsmail, nachdem dein Beitritt bestätigt wurde.") ); responseStream << "

\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t
"; #line 99 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Auswahl") ); responseStream << "
\n"; responseStream << "\t\t\t\t
Name
\n"; responseStream << "\t\t\t\t
Alias
\n"; responseStream << "\t\t\t\t
Url
\n"; responseStream << "\t\t\t\t
"; #line 103 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Description") ); responseStream << "
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t"; #line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" for(auto it = groups.begin(); it != groups.end(); it++) { auto group_model = (*it)->getModel(); responseStream << "\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t\t
getID()); responseStream << "\" />
\n"; responseStream << "\t\t\t\t\t
"; #line 109 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( group_model->getName() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( group_model->getAlias() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 111 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( group_model->getUrl() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( group_model->getDescription()); responseStream << "
\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t"; #line 114 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "\t"; #line 118 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" } else if(PAGE_STATE_REQUEST_IS_RUNNING == state) { responseStream << "\n"; responseStream << "\t\t

"; #line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Deine Beitrittsanfrage wird bearbeitet, du bekommst eine E-Mail wenn sie bestätigt oder abgelehnt wurde.") ); responseStream << "

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

"; #line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Abmelden") ); responseStream << "

\n"; responseStream << "\t"; #line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" } else if(PAGE_STATE_NO_GROUPS == state) { responseStream << "\n"; responseStream << "\t\t

"; #line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" responseStream << ( gettext("Noch keine Gruppen vorhanden, bitte warte bis der Admin welche hinzugefügt hat.") ); responseStream << "\n"; responseStream << "\t"; #line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp" } responseStream << "\n"; responseStream << "

\n"; // begin include footer.cpsp responseStream << "
\n"; responseStream << "

Copyright © Gradido 2020

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " "; #line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "

Login Server in Entwicklung

\n"; responseStream << "

Alpha "; #line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << ""; // end include footer.cpsp responseStream << "\n"; if (_compressResponse) _gzipStream.close(); }