Updated the engine, and added a redirect to the login page from index if the user is not logged in.

This commit is contained in:
Relintai 2021-10-31 02:07:50 +01:00
parent fd37c75c47
commit 9aa2e64199
3 changed files with 21 additions and 7 deletions

2
HEADS
View File

@ -1 +1 @@
{"engine": {"master": "594ab744c52b4697464a49bf09f9895d97eb8723"}}
{"engine": {"master": "8e4bb75bcb12fcab39b4fd874fb279b7620bfaab"}}

View File

@ -17,7 +17,20 @@
#include "modules/users/user.h"
#include "modules/users/user_controller.h"
bool MourneApplication::ensure_login(Request *request) {
Ref<User> u = request->reference_data["user"];
if (!u.is_valid()) {
request->send_redirect("/user/login");
return false;
}
return true;
}
void MourneApplication::index(Object *instance, Request *request) {
ENSURE_LOGIN(request);
add_menu(request, MENUENTRY_NEWS);
/*
@ -45,12 +58,6 @@ void MourneApplication::index(Object *instance, Request *request) {
}
void MourneApplication::session_middleware_func(Object *instance, Request *request) {
std::cout << "test: session_middleware_func called" << std::endl;
//if fail
//request->send(); in middleware
request->next_stage();
}
void MourneApplication::add_menu(Request *request, const MenuEntries index) {

View File

@ -10,6 +10,11 @@
#include "modules/paged_article/paged_article.h"
#include "modules/paged_list/paged_list.h"
#define ENSURE_LOGIN(request) \
if (!ensure_login(request)) { \
return;\
}
class MourneApplication : public DWebApplication {
public:
enum MenuEntries {
@ -29,6 +34,8 @@ public:
};
public:
static bool ensure_login(Request *request);
static void index(Object *instance, Request *request);
static void session_middleware_func(Object *instance, Request *request);