mirror of
https://github.com/Relintai/crystal_cms_rcpp_fw.git
synced 2025-04-22 20:41:18 +02:00
57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
#ifndef CCMS_ROOT_H
|
|
#define CCMS_ROOT_H
|
|
|
|
//#include "core/http/web_application.h"
|
|
#include "core/object.h"
|
|
#include "core/http/web_root.h"
|
|
|
|
#undef LOG_TRACE
|
|
#undef LOG_WARN
|
|
|
|
#include "modules/list_page/list_page.h"
|
|
#include "modules/message_page/message_page.h"
|
|
#include "modules/paged_article/paged_article.h"
|
|
#include "modules/paged_list/paged_list.h"
|
|
|
|
class AdminPanel;
|
|
class RBACController;
|
|
class RBACModel;
|
|
class UserController;
|
|
class MenuNode;
|
|
|
|
#define ENSURE_LOGIN(request) \
|
|
if (!is_logged_in(request)) { \
|
|
request->send_redirect("/user/login"); \
|
|
return; \
|
|
}
|
|
|
|
class CCMSRoot : public WebRoot {
|
|
RCPP_OBJECT(CCMSRoot, WebRoot);
|
|
|
|
public:
|
|
void handle_request_main(Request *request);
|
|
|
|
bool is_logged_in(Request *request);
|
|
|
|
void index(Request *request);
|
|
|
|
void add_menu(Request *request);
|
|
|
|
void setup_middleware();
|
|
void migrate();
|
|
|
|
void compile_menu();
|
|
|
|
CCMSRoot();
|
|
~CCMSRoot();
|
|
|
|
AdminPanel *_admin_panel;
|
|
RBACController *_rbac_controller;
|
|
UserController *_user_controller;
|
|
MenuNode *_menu;
|
|
|
|
static std::string menu_head;
|
|
static std::string footer;
|
|
};
|
|
|
|
#endif |