Reimplemented UserLoginWebPage.

This commit is contained in:
Relintai 2022-07-23 20:33:10 +02:00
parent d0c99d0ef6
commit c6191e1c26
2 changed files with 29 additions and 13 deletions

View File

@ -14,7 +14,14 @@
#include "modules/web/http/web_server_cookie.h" #include "modules/web/http/web_server_cookie.h"
#include "modules/web/http/web_server_request.h" #include "modules/web/http/web_server_request.h"
void UserLoginWebPage::handle_login_request_default(Ref<WebServerRequest> request) { String UserLoginWebPage::get_redirect_on_success_url() {
return _redirect_on_success_url;
}
void UserLoginWebPage::set_redirect_on_success_url(const String &val) {
_redirect_on_success_url = val;
}
void UserLoginWebPage::_render_index(Ref<WebServerRequest> request) {
LoginRequestData data; LoginRequestData data;
if (request->get_method() == HTTPServerEnums::HTTP_METHOD_POST) { if (request->get_method() == HTTPServerEnums::HTTP_METHOD_POST) {
@ -41,8 +48,8 @@ void UserLoginWebPage::handle_login_request_default(Ref<WebServerRequest> reques
Ref<WebServerCookie> c; Ref<WebServerCookie> c;
c.instance(); c.instance();
c->set_data("session_id", session->session_id); c->set_data("session_id", session->get_session_id());
//c.path = "/"; c->set_path("/");
request->response_add_cookie(c); request->response_add_cookie(c);
render_login_success(request); render_login_success(request);
@ -104,17 +111,11 @@ void UserLoginWebPage::render_login_request_default(Ref<WebServerRequest> reques
request->compile_and_send_body(); request->compile_and_send_body();
} }
void UserLoginWebPage::render_already_logged_in_error(Ref<WebServerRequest> request) {
request->body += "You are already logged in.";
request->compile_and_send_body();
}
void UserLoginWebPage::render_login_success(Ref<WebServerRequest> request) { void UserLoginWebPage::render_login_success(Ref<WebServerRequest> request) {
request->body = "Login Success!<br>"; request->body = "Login Success!<br>";
// request->compile_and_send_body(); // request->compile_and_send_body();
request->send_redirect("/user/settings"); request->send_redirect(_redirect_on_success_url);
} }
UserLoginWebPage::UserLoginWebPage() { UserLoginWebPage::UserLoginWebPage() {
@ -126,7 +127,16 @@ UserLoginWebPage::UserLoginWebPage() {
pw->need_to_exist(); pw->need_to_exist();
pw->need_to_have_lowercase_character()->need_to_have_uppercase_character(); pw->need_to_have_lowercase_character()->need_to_have_uppercase_character();
pw->need_minimum_length(5); pw->need_minimum_length(5);
_logged_out_render_type = RENDER_TYPE_RENDER;
_logged_in_render_type = RENDER_TYPE_ERROR;
} }
UserLoginWebPage::~UserLoginWebPage() { UserLoginWebPage::~UserLoginWebPage() {
} }
void UserLoginWebPage::_bind_methods() {
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);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "redirect_on_success_url"), "set_redirect_on_success_url", "get_redirect_on_success_url");
}

View File

@ -15,23 +15,29 @@ class UserLoginWebPage : public UserWebPage {
GDCLASS(UserLoginWebPage, UserWebPage); GDCLASS(UserLoginWebPage, UserWebPage);
public: public:
String get_redirect_on_success_url();
void set_redirect_on_success_url(const String &val);
struct LoginRequestData { struct LoginRequestData {
String error_str; String error_str;
String uname_val; String uname_val;
String pass_val; String pass_val;
}; };
virtual void handle_login_request_default(Ref<WebServerRequest> request); void _render_index(Ref<WebServerRequest> request);
virtual void render_login_request_default(Ref<WebServerRequest> request, LoginRequestData *data);
virtual void render_already_logged_in_error(Ref<WebServerRequest> request); virtual void render_login_request_default(Ref<WebServerRequest> request, LoginRequestData *data);
virtual void render_login_success(Ref<WebServerRequest> request); virtual void render_login_success(Ref<WebServerRequest> request);
UserLoginWebPage(); UserLoginWebPage();
~UserLoginWebPage(); ~UserLoginWebPage();
protected: protected:
static void _bind_methods();
Ref<FormValidator> _login_validator; Ref<FormValidator> _login_validator;
String _redirect_on_success_url;
}; };
#endif #endif