mirror of
https://github.com/Relintai/crystal_cms_rcpp_fw.git
synced 2025-04-22 20:41:18 +02:00
Added page manager to the web root. Also switched to the new menu rendering style.
This commit is contained in:
parent
a1a5e2cd08
commit
b35a5fa051
2
HEADS
2
HEADS
@ -1 +1 @@
|
||||
{"engine": {"master": "f498628ee1d76781a62d72e7fd9bfdbd211ad95d"}}
|
||||
{"engine": {"master": "127219fe342c8d6cc2a10ab5ba78d9519c052105"}}
|
@ -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<User> 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<User> u = request->reference_data["user"];
|
||||
|
||||
return u.is_valid();
|
||||
}
|
||||
|
||||
void CCMSRoot::setup_middleware() {
|
||||
_middlewares.push_back(Ref<SessionSetupMiddleware>(new SessionSetupMiddleware()));
|
||||
// _middlewares.push_back(Ref<UserSessionSetupMiddleware>(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);
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user