mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-23 04:16:50 +01:00
Cleaned up and added the UserSessionSetup Middleware to the build.
This commit is contained in:
parent
a791c8f4b8
commit
7f58857334
@ -16,6 +16,9 @@ sources = [
|
|||||||
"singleton/user_db.cpp",
|
"singleton/user_db.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if env['module_web_enabled']:
|
||||||
|
sources.append("web/middleware/user_session_setup_middleware.cpp")
|
||||||
|
|
||||||
if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes':
|
if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes':
|
||||||
# Shared lib compilation
|
# Shared lib compilation
|
||||||
module_env.Append(CCFLAGS=['-fPIC'])
|
module_env.Append(CCFLAGS=['-fPIC'])
|
||||||
|
@ -15,6 +15,8 @@ def get_doc_classes():
|
|||||||
"UserManagerStatic",
|
"UserManagerStatic",
|
||||||
"UserManagerFile",
|
"UserManagerFile",
|
||||||
"UserDB",
|
"UserDB",
|
||||||
|
|
||||||
|
"UserSessionSetupWebServerMiddleware",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,6 +32,12 @@ SOFTWARE.
|
|||||||
|
|
||||||
#include "singleton/user_db.h"
|
#include "singleton/user_db.h"
|
||||||
|
|
||||||
|
#include "../modules_enabled.gen.h"
|
||||||
|
|
||||||
|
#ifdef MODULE_WEB_ENABLED
|
||||||
|
#include "web/middleware/user_session_setup_middleware.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
UserDB *_user_db = nullptr;
|
UserDB *_user_db = nullptr;
|
||||||
|
|
||||||
void register_users_types() {
|
void register_users_types() {
|
||||||
@ -45,6 +51,10 @@ void register_users_types() {
|
|||||||
|
|
||||||
_user_db = memnew(UserDB);
|
_user_db = memnew(UserDB);
|
||||||
Engine::get_singleton()->add_singleton(Engine::Singleton("UserDB", UserDB::get_singleton()));
|
Engine::get_singleton()->add_singleton(Engine::Singleton("UserDB", UserDB::get_singleton()));
|
||||||
|
|
||||||
|
#ifdef MODULE_WEB_ENABLED
|
||||||
|
ClassDB::register_class<UserSessionSetupWebServerMiddleware>();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void unregister_users_types() {
|
void unregister_users_types() {
|
||||||
|
@ -1,18 +1,20 @@
|
|||||||
#include "user_session_setup_middleware.h"
|
#include "user_session_setup_middleware.h"
|
||||||
|
|
||||||
|
#include "../../singleton/user_db.h"
|
||||||
|
#include "../../users/user.h"
|
||||||
#include "modules/web/http/http_session.h"
|
#include "modules/web/http/http_session.h"
|
||||||
#include "modules/web/http/web_server_request.h"
|
#include "modules/web/http/web_server_request.h"
|
||||||
|
|
||||||
// returnring true means handled, false means continue
|
// returning true means handled, false means continue
|
||||||
bool UserSessionSetupMiddleware::on_before_handle_request_main(Ref<WebServerRequest> request) {
|
bool UserSessionSetupWebServerMiddleware::_on_before_handle_request_main(Ref<WebServerRequest> request) {
|
||||||
if (request->get_session().is_valid()) {
|
if (request->get_session().is_valid()) {
|
||||||
int user_id = request->get_session()->get_int("user_id");
|
int user_id = request->get_session()->get_int("user_id", -1);
|
||||||
|
|
||||||
if (user_id != 0) {
|
if (user_id != -1) {
|
||||||
Ref<User> u = UserController::get_singleton()->db_get_user(user_id);
|
Ref<User> u = UserDB::get_singleton()->get_user(user_id);
|
||||||
|
|
||||||
if (u.is_valid()) {
|
if (u.is_valid()) {
|
||||||
request->reference_data["user"] = u;
|
request->set_meta("user", u);
|
||||||
} else {
|
} else {
|
||||||
// log
|
// log
|
||||||
request->get_session()->remove("user_id");
|
request->get_session()->remove("user_id");
|
||||||
@ -23,7 +25,7 @@ bool UserSessionSetupMiddleware::on_before_handle_request_main(Ref<WebServerRequ
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
UserSessionSetupMiddleware::UserSessionSetupMiddleware() {
|
UserSessionSetupWebServerMiddleware::UserSessionSetupWebServerMiddleware() {
|
||||||
}
|
}
|
||||||
UserSessionSetupMiddleware::~UserSessionSetupMiddleware() {
|
UserSessionSetupWebServerMiddleware::~UserSessionSetupWebServerMiddleware() {
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#ifndef USER_SESSION_SETUP_MIDDLEWARE_H
|
#ifndef USER_SESSION_SETUP_WEB_SERVER_MIDDLEWARE_H
|
||||||
#define USER_SESSION_SETUP_MIDDLEWARE_H
|
#define USER_SESSION_SETUP_WEB_SERVER_MIDDLEWARE_H
|
||||||
|
|
||||||
#include "core/reference.h"
|
#include "core/reference.h"
|
||||||
#include "core/ustring.h"
|
#include "core/ustring.h"
|
||||||
@ -7,15 +7,15 @@
|
|||||||
#include "modules/web/http/web_server_middleware.h"
|
#include "modules/web/http/web_server_middleware.h"
|
||||||
|
|
||||||
// just session setup
|
// just session setup
|
||||||
class UserSessionSetupMiddleware : public WebServerMiddleware {
|
class UserSessionSetupWebServerMiddleware : public WebServerMiddleware {
|
||||||
GDCLASS(UserSessionSetupMiddleware, WebServerMiddleware);
|
GDCLASS(UserSessionSetupWebServerMiddleware, WebServerMiddleware);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//returning true means handled, false means continue
|
//returning true means handled, false means continue
|
||||||
bool on_before_handle_request_main(Ref<WebServerRequest> request);
|
bool _on_before_handle_request_main(Ref<WebServerRequest> request);
|
||||||
|
|
||||||
UserSessionSetupMiddleware();
|
UserSessionSetupWebServerMiddleware();
|
||||||
~UserSessionSetupMiddleware();
|
~UserSessionSetupWebServerMiddleware();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user