mirror of
https://github.com/Relintai/mourne_rcpp_fw.git
synced 2024-12-23 21:16:50 +01:00
72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
#ifndef RDN_APPLICATION_H
|
|
#define RDN_APPLICATION_H
|
|
|
|
//#include "core/http/web_application.h"
|
|
#include "core/object.h"
|
|
#include "core/string.h"
|
|
#include "modules/drogon/web_application.h"
|
|
|
|
#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;
|
|
|
|
#define ENSURE_LOGIN(request) \
|
|
if (!is_logged_in(request)) { \
|
|
request->send_redirect("/user/login"); \
|
|
return; \
|
|
}
|
|
|
|
class MourneApplication : public DWebApplication {
|
|
public:
|
|
enum MenuEntries {
|
|
MENUENTRY_NEWS = 0,
|
|
MENUENTRY_MAIL,
|
|
MENUENTRY_HERO,
|
|
MENUENTRY_VILLAGE,
|
|
MENUENTRY_SELECT_VILLAGE,
|
|
MENUENTRY_ALLIANCE,
|
|
MENUENTRY_ALLIANCE_MENU,
|
|
MENUENTRY_FORUM,
|
|
MENUENTRY_CHANGELOG,
|
|
MENUENTRY_SETTINGS,
|
|
MENUENTRY_LOGOUT,
|
|
|
|
MENUENTRY_MAX,
|
|
};
|
|
|
|
public:
|
|
static bool is_logged_in(Request *request);
|
|
|
|
static void index(Object *instance, Request *request);
|
|
|
|
static void session_middleware_func(Object *instance, Request *request);
|
|
|
|
static void add_menu(Request *request, const MenuEntries index);
|
|
|
|
static void village_page_func(Object *instance, Request *request);
|
|
static void user_page_func(Object *instance, Request *request);
|
|
|
|
static void admin_page_func(Object *instance, Request *request);
|
|
|
|
virtual void setup_routes();
|
|
virtual void setup_middleware();
|
|
|
|
virtual void migrate();
|
|
virtual void add_default_data();
|
|
|
|
void compile_menu();
|
|
|
|
MourneApplication();
|
|
~MourneApplication();
|
|
|
|
AdminPanel *_admin_panel;
|
|
|
|
static String menu_head;
|
|
static String admin_headers;
|
|
static String footer;
|
|
};
|
|
|
|
#endif |