Added signals for user actions into the user web nodes.

This commit is contained in:
Relintai 2022-12-18 16:05:23 +01:00
parent a67a36289b
commit 99dd7022a5
12 changed files with 42 additions and 6 deletions

View File

@ -17,6 +17,8 @@
void UserDeleteWebPage::handle_delete_request(Ref<User> &user, Ref<WebServerRequest> request) { void UserDeleteWebPage::handle_delete_request(Ref<User> &user, Ref<WebServerRequest> request) {
request->body += "handle_delete_request"; request->body += "handle_delete_request";
//emit_signal("user_deleted", request, user);
request->compile_and_send_body(); request->compile_and_send_body();
} }
@ -25,3 +27,7 @@ UserDeleteWebPage::UserDeleteWebPage() {
UserDeleteWebPage::~UserDeleteWebPage() { UserDeleteWebPage::~UserDeleteWebPage() {
} }
void UserDeleteWebPage::_bind_methods() {
ADD_SIGNAL(MethodInfo("user_deleted", PropertyInfo(Variant::OBJECT, "request", PROPERTY_HINT_RESOURCE_TYPE, "WebServerRequest"), PropertyInfo(Variant::OBJECT, "user", PROPERTY_HINT_RESOURCE_TYPE, "User")));
}

View File

@ -1,9 +1,9 @@
#ifndef USER_DELETE_WEB_PAGE_H #ifndef USER_DELETE_WEB_PAGE_H
#define USER_DELETE_WEB_PAGE_H #define USER_DELETE_WEB_PAGE_H
#include "core/containers/vector.h"
#include "core/object/reference.h" #include "core/object/reference.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/containers/vector.h"
#include "user_web_page.h" #include "user_web_page.h"
@ -21,6 +21,7 @@ public:
~UserDeleteWebPage(); ~UserDeleteWebPage();
protected: protected:
static void _bind_methods();
}; };
#endif #endif

View File

@ -52,6 +52,8 @@ void UserLoginWebPage::_render_index(Ref<WebServerRequest> request) {
c->set_path("/"); c->set_path("/");
request->response_add_cookie(c); request->response_add_cookie(c);
emit_signal("user_logged_in", request, user);
render_login_success(request); render_login_success(request);
return; return;
@ -136,6 +138,8 @@ UserLoginWebPage::~UserLoginWebPage() {
} }
void UserLoginWebPage::_bind_methods() { void UserLoginWebPage::_bind_methods() {
ADD_SIGNAL(MethodInfo("user_logged_in", PropertyInfo(Variant::OBJECT, "request", PROPERTY_HINT_RESOURCE_TYPE, "WebServerRequest"), PropertyInfo(Variant::OBJECT, "user", PROPERTY_HINT_RESOURCE_TYPE, "User")));
ClassDB::bind_method(D_METHOD("get_redirect_on_success_url"), &UserLoginWebPage::get_redirect_on_success_url); ClassDB::bind_method(D_METHOD("get_redirect_on_success_url"), &UserLoginWebPage::get_redirect_on_success_url);
ClassDB::bind_method(D_METHOD("set_redirect_on_success_url", "val"), &UserLoginWebPage::set_redirect_on_success_url); ClassDB::bind_method(D_METHOD("set_redirect_on_success_url", "val"), &UserLoginWebPage::set_redirect_on_success_url);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "redirect_on_success_url"), "set_redirect_on_success_url", "get_redirect_on_success_url"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "redirect_on_success_url"), "set_redirect_on_success_url", "get_redirect_on_success_url");

View File

@ -1,9 +1,9 @@
#ifndef USER_LOGIN_REQUEST_WEB_PAGE_H #ifndef USER_LOGIN_REQUEST_WEB_PAGE_H
#define USER_LOGIN_REQUEST_WEB_PAGE_H #define USER_LOGIN_REQUEST_WEB_PAGE_H
#include "core/containers/vector.h"
#include "core/object/reference.h" #include "core/object/reference.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/containers/vector.h"
#include "user_web_page.h" #include "user_web_page.h"

View File

@ -27,6 +27,8 @@ void UserLogoutWebPage::_render_index(Ref<WebServerRequest> request) {
sess_man->delete_session(request->get_session()->get_session_id()); sess_man->delete_session(request->get_session()->get_session_id());
request->set_session(Ref<HTTPSession>()); request->set_session(Ref<HTTPSession>());
emit_signal("user_logged_out", request, user);
HTMLBuilder b; HTMLBuilder b;
b.w("Logout successful!"); b.w("Logout successful!");
request->body += b.result; request->body += b.result;
@ -39,3 +41,7 @@ UserLogoutWebPage::UserLogoutWebPage() {
UserLogoutWebPage::~UserLogoutWebPage() { UserLogoutWebPage::~UserLogoutWebPage() {
} }
void UserLogoutWebPage::_bind_methods() {
ADD_SIGNAL(MethodInfo("user_logged_out", PropertyInfo(Variant::OBJECT, "request", PROPERTY_HINT_RESOURCE_TYPE, "WebServerRequest"), PropertyInfo(Variant::OBJECT, "user", PROPERTY_HINT_RESOURCE_TYPE, "User")));
}

View File

@ -1,9 +1,9 @@
#ifndef USER_LOGOUT_WEB_PAGE_H #ifndef USER_LOGOUT_WEB_PAGE_H
#define USER_LOGOUT_WEB_PAGE_H #define USER_LOGOUT_WEB_PAGE_H
#include "core/containers/vector.h"
#include "core/object/reference.h" #include "core/object/reference.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/containers/vector.h"
#include "user_web_page.h" #include "user_web_page.h"
@ -21,6 +21,7 @@ public:
~UserLogoutWebPage(); ~UserLogoutWebPage();
protected: protected:
static void _bind_methods();
}; };
#endif #endif

View File

@ -17,6 +17,8 @@
void UserPasswordResetWebPage::handle_password_reset_request(Ref<User> &user, Ref<WebServerRequest> request) { void UserPasswordResetWebPage::handle_password_reset_request(Ref<User> &user, Ref<WebServerRequest> request) {
request->body += "handle_password_reset_request"; request->body += "handle_password_reset_request";
//emit_signal("user_password_reseted", request, user);
request->compile_and_send_body(); request->compile_and_send_body();
} }
@ -25,3 +27,7 @@ UserPasswordResetWebPage::UserPasswordResetWebPage() {
UserPasswordResetWebPage::~UserPasswordResetWebPage() { UserPasswordResetWebPage::~UserPasswordResetWebPage() {
} }
void UserPasswordResetWebPage::_bind_methods() {
ADD_SIGNAL(MethodInfo("user_password_reseted", PropertyInfo(Variant::OBJECT, "request", PROPERTY_HINT_RESOURCE_TYPE, "WebServerRequest"), PropertyInfo(Variant::OBJECT, "user", PROPERTY_HINT_RESOURCE_TYPE, "User")));
}

View File

@ -1,9 +1,9 @@
#ifndef USER_PASSWORD_RESET_WEB_PAGE_H #ifndef USER_PASSWORD_RESET_WEB_PAGE_H
#define USER_PASSWORD_RESET_WEB_PAGE_H #define USER_PASSWORD_RESET_WEB_PAGE_H
#include "core/containers/vector.h"
#include "core/object/reference.h" #include "core/object/reference.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/containers/vector.h"
#include "user_web_page.h" #include "user_web_page.h"
@ -21,6 +21,7 @@ public:
~UserPasswordResetWebPage(); ~UserPasswordResetWebPage();
protected: protected:
static void _bind_methods();
}; };
#endif #endif

View File

@ -61,6 +61,8 @@ void UserRegisterWebPage::_render_index(Ref<WebServerRequest> request) {
user->create_password(data.pass_val); user->create_password(data.pass_val);
user->save(); user->save();
emit_signal("user_registered", request, user);
render_register_success(request); render_register_success(request);
return; return;
} }
@ -170,6 +172,8 @@ UserRegisterWebPage::~UserRegisterWebPage() {
} }
void UserRegisterWebPage::_bind_methods() { void UserRegisterWebPage::_bind_methods() {
ADD_SIGNAL(MethodInfo("user_registered", PropertyInfo(Variant::OBJECT, "request", PROPERTY_HINT_RESOURCE_TYPE, "WebServerRequest"), PropertyInfo(Variant::OBJECT, "user", PROPERTY_HINT_RESOURCE_TYPE, "User")));
ClassDB::bind_method(D_METHOD("get_redirect_on_success_url"), &UserRegisterWebPage::get_redirect_on_success_url); ClassDB::bind_method(D_METHOD("get_redirect_on_success_url"), &UserRegisterWebPage::get_redirect_on_success_url);
ClassDB::bind_method(D_METHOD("set_redirect_on_success_url", "val"), &UserRegisterWebPage::set_redirect_on_success_url); ClassDB::bind_method(D_METHOD("set_redirect_on_success_url", "val"), &UserRegisterWebPage::set_redirect_on_success_url);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "redirect_on_success_url"), "set_redirect_on_success_url", "get_redirect_on_success_url"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "redirect_on_success_url"), "set_redirect_on_success_url", "get_redirect_on_success_url");

View File

@ -1,9 +1,9 @@
#ifndef USER_REGISTER_WEB_PAGE_H #ifndef USER_REGISTER_WEB_PAGE_H
#define USER_REGISTER_WEB_PAGE_H #define USER_REGISTER_WEB_PAGE_H
#include "core/containers/vector.h"
#include "core/object/reference.h" #include "core/object/reference.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/containers/vector.h"
#include "user_web_page.h" #include "user_web_page.h"

View File

@ -79,6 +79,7 @@ void UserSettingsWebPage::_render_index(Ref<WebServerRequest> request) {
if (changed) { if (changed) {
user->save(); user->save();
emit_signal("user_settings_changed", request, user);
} }
} }
} }
@ -161,3 +162,7 @@ UserSettingsWebPage::UserSettingsWebPage() {
UserSettingsWebPage::~UserSettingsWebPage() { UserSettingsWebPage::~UserSettingsWebPage() {
} }
void UserSettingsWebPage::_bind_methods() {
ADD_SIGNAL(MethodInfo("user_settings_changed", PropertyInfo(Variant::OBJECT, "request", PROPERTY_HINT_RESOURCE_TYPE, "WebServerRequest"), PropertyInfo(Variant::OBJECT, "user", PROPERTY_HINT_RESOURCE_TYPE, "User")));
}

View File

@ -1,9 +1,9 @@
#ifndef USER_SETTINGS_WEB_PAGE_H #ifndef USER_SETTINGS_WEB_PAGE_H
#define USER_SETTINGS_WEB_PAGE_H #define USER_SETTINGS_WEB_PAGE_H
#include "core/containers/vector.h"
#include "core/object/reference.h" #include "core/object/reference.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/containers/vector.h"
#include "user_web_page.h" #include "user_web_page.h"
@ -31,6 +31,8 @@ public:
~UserSettingsWebPage(); ~UserSettingsWebPage();
protected: protected:
static void _bind_methods();
Ref<FormValidator> _profile_validator; Ref<FormValidator> _profile_validator;
}; };