diff --git a/HEADS b/HEADS index 778d0dd..179de85 100644 --- a/HEADS +++ b/HEADS @@ -1 +1 @@ -{"engine": {"master": "f498628ee1d76781a62d72e7fd9bfdbd211ad95d"}} \ No newline at end of file +{"engine": {"master": "127219fe342c8d6cc2a10ab5ba78d9519c052105"}} \ No newline at end of file diff --git a/app/ccms_root.cpp b/app/ccms_root.cpp index 4e101db..d131c9b 100644 --- a/app/ccms_root.cpp +++ b/app/ccms_root.cpp @@ -9,9 +9,9 @@ #include "core/database/database_manager.h" #include "core/html/html_builder.h" +#include "core/http/csrf_token.h" #include "core/http/http_session.h" #include "core/http/session_manager.h" -#include "core/http/csrf_token.h" #include "modules/users/user.h" //#include "modules/users/user_controller.h" @@ -37,41 +37,31 @@ void CCMSRoot::handle_request_main(Request *request) { // this is a hack, until I have a simple index node, or port contentcontroller. if (request->get_path_segment_count() == 0) { - _handle_request_main(request); + _page_manager->handle_request_main(request); return; } WebNode *handler = get_request_handler_child(request); if (!handler) { - request->send_error(404); + // request->send_error(404); + _page_manager->handle_request_main(request); return; } - add_menu(request); handler->handle_request_main(request); } void CCMSRoot::_handle_request_main(Request *request) { // ENSURE_LOGIN(request); - add_menu(request); + _render_menu(request); request->body += "test"; request->compile_and_send_body(); } -bool CCMSRoot::is_logged_in(Request *request) { - if (!request->session.is_valid()) { - return false; - } - - Ref u = request->reference_data["user"]; - - return u.is_valid(); -} - -void CCMSRoot::add_menu(Request *request) { +void CCMSRoot::_render_menu(Request *request) { request->head += menu_head; _menu->render(request); @@ -82,10 +72,19 @@ void CCMSRoot::add_menu(Request *request) { b.write_tag(); request->body += b.result; - request->footer = footer; } +bool CCMSRoot::is_logged_in(Request *request) { + if (!request->session.is_valid()) { + return false; + } + + Ref u = request->reference_data["user"]; + + return u.is_valid(); +} + void CCMSRoot::setup_middleware() { _middlewares.push_back(Ref(new SessionSetupMiddleware())); // _middlewares.push_back(Ref(new UserSessionSetupMiddleware())); @@ -141,6 +140,10 @@ void CCMSRoot::compile_menu() { CCMSRoot::CCMSRoot() : WebRoot() { + _page_manager = new PageManager(); + _page_manager->set_uri_segment("/"); + add_child(_page_manager); + _user_controller = new CCMSUserController(); _user_controller->set_uri_segment("user"); // user_manager->set_path("./users/"); @@ -155,6 +158,7 @@ CCMSRoot::CCMSRoot() : _admin_panel->set_uri_segment("admin"); _admin_panel->register_admin_controller("rbac", _rbac_controller); _admin_panel->register_admin_controller("menu", _menu); + _admin_panel->register_admin_controller("page_manager", _page_manager); _admin_panel->add_child(_rbac_controller); _admin_panel->add_child(_menu); diff --git a/app/ccms_root.h b/app/ccms_root.h index f416b23..b0bcdbd 100644 --- a/app/ccms_root.h +++ b/app/ccms_root.h @@ -12,12 +12,14 @@ #include "modules/message_page/message_page.h" #include "modules/paged_article/paged_article.h" #include "modules/paged_list/paged_list.h" +#include "page_manager/page_manager.h" class AdminPanel; class RBACController; class RBACModel; class UserController; class MenuNode; +class PageManager; #define ENSURE_LOGIN(request) \ if (!is_logged_in(request)) { \ @@ -32,9 +34,9 @@ public: void handle_request_main(Request *request); void _handle_request_main(Request *request); - bool is_logged_in(Request *request); + void _render_menu(Request *request); - void add_menu(Request *request); + bool is_logged_in(Request *request); void setup_middleware(); void migrate(); @@ -48,6 +50,7 @@ public: RBACController *_rbac_controller; UserController *_user_controller; MenuNode *_menu; + PageManager *_page_manager; static std::string menu_head; static std::string footer; diff --git a/app/page_manager/page_manager.cpp b/app/page_manager/page_manager.cpp index 5d382cf..6dc0ff4 100644 --- a/app/page_manager/page_manager.cpp +++ b/app/page_manager/page_manager.cpp @@ -20,6 +20,7 @@ #include "page.h" void PageManager::_handle_request_main(Request *request) { + render_menu(request); request->body += "PageManagerTest"; request->compile_and_send_body();