mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-01-27 03:19:19 +01:00
Implement locale helper methods to WebServerRequest.
This commit is contained in:
parent
e0fc57e12a
commit
7e67160d53
@ -32,6 +32,7 @@
|
|||||||
#include "web_server_request.h"
|
#include "web_server_request.h"
|
||||||
|
|
||||||
#include "core/object/object.h"
|
#include "core/object/object.h"
|
||||||
|
#include "core/string/translation.h"
|
||||||
#include "core/variant/variant.h"
|
#include "core/variant/variant.h"
|
||||||
#include "web_server.h"
|
#include "web_server.h"
|
||||||
#include "web_server_cookie.h"
|
#include "web_server_cookie.h"
|
||||||
@ -173,6 +174,35 @@ bool WebServerRequest::validate_csrf_token() {
|
|||||||
return param_token == token;
|
return param_token == token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WebServerRequest::has_locale() const {
|
||||||
|
return _locale != StringName();
|
||||||
|
}
|
||||||
|
StringName WebServerRequest::get_locale() const {
|
||||||
|
if (_locale == StringName()) {
|
||||||
|
return OS::get_singleton()->get_locale();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _locale;
|
||||||
|
}
|
||||||
|
void WebServerRequest::set_locale(const StringName &p_locale) {
|
||||||
|
_locale = p_locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WebServerRequest::save_locale_as_cookie() {
|
||||||
|
Ref<WebServerCookie> cookie;
|
||||||
|
cookie.instance();
|
||||||
|
|
||||||
|
cookie->set_data("locale", _locale);
|
||||||
|
|
||||||
|
response_add_cookie(cookie);
|
||||||
|
}
|
||||||
|
void WebServerRequest::load_locale_from_cookie() {
|
||||||
|
_locale = get_cookie("locale");
|
||||||
|
}
|
||||||
|
void WebServerRequest::clear_locale_from_cookie() {
|
||||||
|
response_remove_cookie_simple("locale");
|
||||||
|
}
|
||||||
|
|
||||||
String WebServerRequest::get_cookie(const String &key) {
|
String WebServerRequest::get_cookie(const String &key) {
|
||||||
return String();
|
return String();
|
||||||
}
|
}
|
||||||
@ -631,6 +661,14 @@ void WebServerRequest::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("set_csrf_token", "value"), &WebServerRequest::set_csrf_token);
|
ClassDB::bind_method(D_METHOD("set_csrf_token", "value"), &WebServerRequest::set_csrf_token);
|
||||||
ClassDB::bind_method(D_METHOD("validate_csrf_token"), &WebServerRequest::validate_csrf_token);
|
ClassDB::bind_method(D_METHOD("validate_csrf_token"), &WebServerRequest::validate_csrf_token);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("has_locale"), &WebServerRequest::has_locale);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_locale"), &WebServerRequest::get_locale);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_locale", "locale"), &WebServerRequest::set_locale);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("save_locale_as_cookie"), &WebServerRequest::save_locale_as_cookie);
|
||||||
|
ClassDB::bind_method(D_METHOD("load_locale_from_cookie"), &WebServerRequest::load_locale_from_cookie);
|
||||||
|
ClassDB::bind_method(D_METHOD("clear_locale_from_cookie"), &WebServerRequest::clear_locale_from_cookie);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_cookie", "key"), &WebServerRequest::get_cookie);
|
ClassDB::bind_method(D_METHOD("get_cookie", "key"), &WebServerRequest::get_cookie);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("response_add_cookie", "cookie"), &WebServerRequest::response_add_cookie);
|
ClassDB::bind_method(D_METHOD("response_add_cookie", "cookie"), &WebServerRequest::response_add_cookie);
|
||||||
|
@ -91,6 +91,14 @@ public:
|
|||||||
void set_csrf_token(const String &value);
|
void set_csrf_token(const String &value);
|
||||||
bool validate_csrf_token();
|
bool validate_csrf_token();
|
||||||
|
|
||||||
|
bool has_locale() const;
|
||||||
|
StringName get_locale() const;
|
||||||
|
void set_locale(const StringName &p_locale);
|
||||||
|
|
||||||
|
void save_locale_as_cookie();
|
||||||
|
void load_locale_from_cookie();
|
||||||
|
void clear_locale_from_cookie();
|
||||||
|
|
||||||
virtual String get_cookie(const String &key);
|
virtual String get_cookie(const String &key);
|
||||||
|
|
||||||
void response_add_cookie(const Ref<WebServerCookie> &cookie);
|
void response_add_cookie(const Ref<WebServerCookie> &cookie);
|
||||||
@ -200,6 +208,8 @@ protected:
|
|||||||
|
|
||||||
Ref<HTTPSession> _session;
|
Ref<HTTPSession> _session;
|
||||||
|
|
||||||
|
StringName _locale;
|
||||||
|
|
||||||
bool _connection_closed;
|
bool _connection_closed;
|
||||||
|
|
||||||
WebServer *_server;
|
WebServer *_server;
|
||||||
|
Loading…
Reference in New Issue
Block a user