Commit Graph

408 Commits

Author SHA1 Message Date
80d2a379fe Moved html and http from core to a new web folder. 2022-02-05 15:30:48 +01:00
d1e8def48d Moved newline_to_br helper from Utils to String. 2022-02-05 15:12:37 +01:00
b9afc6f201 Moved the Utils class under core/html. 2022-02-05 15:10:56 +01:00
92e3f8a006 Added a new web_modules folder and moved every web related module to it. 2022-02-05 15:03:23 +01:00
4ca0d7032a Added 2 append_path helper methods to string, and 2 append_str variants. 2022-02-05 14:53:19 +01:00
bfec926e60 Re-enabled skip specials logic in Directory. 2022-02-05 14:00:07 +01:00
8e49115f09 Reworked directory listing. Now only next need to be called in a while loop. 2022-02-05 13:56:30 +01:00
87a55d6a44 Improved Node's add_child and set_tree. 2022-02-05 02:45:40 +01:00
37fe94f99e Improvements to the directory class. 2022-02-05 02:45:11 +01:00
6d1eabf64d Zero out member variables. 2022-02-05 02:43:53 +01:00
5097d210d3 Renamed a few method in Directory. 2022-02-04 23:36:04 +01:00
5292da82ba Now read_file_into in Directory will return an Error. 2022-02-04 23:33:39 +01:00
ef06a9e57d Set skip specials to true by default. 2022-02-04 23:27:37 +01:00
d71db48661 Now FileCache uses the new Directory class. 2022-02-04 23:25:26 +01:00
0669bbbe55 Added a new open method to the directory class, and changed current_is_directory to current_is_dir. 2022-02-04 23:25:09 +01:00
b38b2f4755 Added a directory class to the core. It's directly using tinydir for now. 2022-02-04 23:17:46 +01:00
ae81caf9a1 Replaced the mutex in FileCache with an RWLock. 2022-02-04 22:12:08 +01:00
0514505cef Fix compile. 2022-02-04 22:11:50 +01:00
60e7dfe7e9 Added clear method to FileCache. 2022-02-04 22:03:22 +01:00
60ed46b5e6 Added continue related error macros. Also added a new type where you can put commands before continuing. 2022-02-04 22:02:54 +01:00
3361d576de Don't try to route requests when routing is disabled. 2022-02-04 20:26:08 +01:00
1bb16134ad Made the routing getter and setter virtual. 2022-02-04 20:18:52 +01:00
7bd1b372ea Merged WebRouterNode into WebNode. Also added a way to turn it off in case it's needed. It's too useful to not have it on all nodes. 2022-02-04 20:15:45 +01:00
c827f6fe64 Fix expected alphanumeric comparison logic in string. 2022-02-04 16:13:54 +01:00
65892ddd5a Added get_parent_webnode, get_full_uri, and get_full_uri_parent helpers to WebNode. 2022-02-04 15:54:21 +01:00
53238c1265 Pass base_url by a reference in Utils-> pagination. 2022-02-04 15:53:31 +01:00
3172dfbcd9 Added 2 helper methods to Math. 2022-02-04 15:52:48 +01:00
a05ca2e261 SharedResource is now using an RWLock. 2022-02-04 13:53:30 +01:00
f434d1ff6c Added error_list.h from Godot. 2022-02-04 13:53:05 +01:00
71947ea292 Now Image is enabled and it compiles. 2022-02-04 13:37:52 +01:00
e60cb3ab42 Declare memnew_arr and memdelete_arr macros in memory.h as I still can't decide about them. 2022-02-04 13:36:17 +01:00
5aa8f6ccd3 Added half bits to float conversions from the godot engine. 2022-02-04 13:25:11 +01:00
2c16563d97 Added abs helper method to Rect2 and Rect2i. 2022-02-04 13:21:15 +01:00
e34079ee46 Vector2 <-> Vector2i conversion operators. 2022-02-04 13:17:55 +01:00
cf8dd43fd7 Added Rect2 <-> Rect2i conversion operators. Also smaller helper methods. 2022-02-04 13:13:27 +01:00
334075aeca Ported Rect2's clip from godot to both Rect2 and Rect2i. 2022-02-04 13:06:13 +01:00
69a2d2f1b7 Added ABS, GSN, MIN, MAX, CLAMP macros to math.h for convenience. 2022-02-04 13:05:49 +01:00
e28007085c Added position and size helper methods to Rect2 and Rect2i. 2022-02-04 12:54:28 +01:00
53b9236c5f Added Rect2i. 2022-02-04 11:56:43 +01:00
202df3bac6 Added Vector2i. 2022-02-04 11:54:46 +01:00
bfa4a96c2a Fix 2 typos. 2022-02-04 11:52:40 +01:00
397459ce7b Added the Color class from godot. Removed the ColorUInt8 typedef. 2022-02-04 11:34:07 +01:00
db531000c1 Added a few wchar_t based helper methods to string. 2022-02-04 11:33:35 +01:00
f5d525948b Added ERR_FAIL_V_MSG error macro aswell. 2022-02-04 11:32:07 +01:00
5503e58d54 added round to Math, and fixed the type of the double pow's arguments. 2022-02-04 11:31:43 +01:00
d0c80ffe6a Removed sdl rect conversion. 2022-02-04 11:30:40 +01:00
e9250d185f Added vector2 based constructors to rect2. 2022-02-04 11:30:01 +01:00
a723d748a7 Removed sdl color conversion from Color. 2022-02-04 10:39:53 +01:00
16746f513d Added sinh, cosh, tanh, sinc and sincn to the Math class. 2022-02-04 10:38:49 +01:00
d8e06e36f0 Added more error macro variants. 2022-02-04 10:38:18 +01:00
e946184d2c Fix typo. 2022-02-04 10:37:52 +01:00
8dda820a54 Renamed Color to ColorUInt8, and typedef-ed it to Color. 2022-02-04 10:37:36 +01:00
91a87ad63a Signal is not inherited from object anymore. 2022-02-04 08:59:15 +01:00
0d3db0979a Add the emitter object as a parameter. 2022-02-04 08:56:15 +01:00
d42311356f Added a signal class. 2022-02-04 08:53:57 +01:00
b613349a11 Added StringName from Godot. 2022-02-04 07:58:57 +01:00
88fafbe78e Added image from godot, and removed the sdl image/sprite/texture. 2022-02-04 07:58:36 +01:00
a834ef7e87 Added spin lock and rwlock from godot. 2022-02-04 07:57:57 +01:00
33ba5337b7 Added html special chars methods to the string. 2022-02-04 06:37:14 +01:00
33be242319 Implement handling [color=white] like bbcode tags. 2022-02-04 06:19:38 +01:00
0e4222e5af Remove warning from self closing tags, as it handles list items correctly. 2022-02-04 06:07:41 +01:00
cf8883fdd1 The bbcode parser should work now. Kept the self closing tag, as it might be useful for non standard tags. 2022-02-04 05:57:47 +01:00
15077110e2 Removed the script tag parsing from the bbcode parser. 2022-02-04 05:51:53 +01:00
b8969af324 Added a bbcode parser. It's a copy of the html parser for now. 2022-02-04 05:50:13 +01:00
a81dac1515 Fox include guard. 2022-02-04 05:47:51 +01:00
5d75c5bda7 Removed resource properties, and most things from the base resource. 2022-02-04 05:16:40 +01:00
6416ecc5e0 Reworked migrations. Now they automatically propagate through the node hierarchy. Also they have parameters. 2022-01-13 23:45:38 +01:00
127219fe34 Added more helper methods to WebNode. Also a render_menu() virtual. 2022-01-13 22:58:59 +01:00
bde46b20cd Reworked how set_tree works. 2022-01-13 22:58:27 +01:00
f498628ee1 Split handle_request_main into handle_request_main and _handle_request_main. _handle_request_main should be responsible for actually rendering a page, while the normal one is responsible for routing by default. This makes the design simpler. 2022-01-09 18:35:12 +01:00
73df53418a Process middleware now returns a bool, and processing the request now actually stops if a middleware returns true, as intended. 2022-01-09 16:03:27 +01:00
3873463dfa Improved the comments in WebRoot::setup_middleware. 2022-01-09 15:55:32 +01:00
8a64723710 Save the settion after the csrf token is added to it. 2022-01-09 15:53:58 +01:00
885d6cb4a6 Added url ignore support for the csrf token middleware. Also properly implemented create_token. 2022-01-09 15:53:40 +01:00
e728d826f1 Fis logic in has() in HTTPSession. 2022-01-09 15:48:54 +01:00
7323c38776 Make sha256's factory method return a ref<> instead of a raw pointer. 2022-01-09 15:29:03 +01:00
8e903f2695 Added a simple csrf token middleware. 2022-01-09 15:25:55 +01:00
4c6e02d07f Added an another csrf token helper. 2022-01-09 15:00:59 +01:00
58411bdb7d Made the more complex helper methods return the HTMLBuilder tself instead of the HTMLTags in HTMLBuilder . 2022-01-09 14:58:35 +01:00
3c8d2eaed9 Core support for csrf tokens. 2022-01-09 14:51:04 +01:00
a119251e09 Reworked HTTPSession, now it uses Variants instead of multiple classes. Also it's inherited from Reference now. Also smaller cleanups to the SessionManager. 2022-01-09 14:32:09 +01:00
bede579bf6 Fixed a few smalled issues with variant. Also added 2 new helper methods to it. 2022-01-09 14:30:42 +01:00
10effc3971 Delete children Nodes in Node's destructor. Also delet the tree in NodeTree's destructor. 2022-01-08 14:11:08 +01:00
bd93a2a9ce Don't call setup() in WebRoot's constructor. 2022-01-08 13:41:26 +01:00
d380d14152 Move middleware processing to a helper method. 2022-01-08 13:09:12 +01:00
7dc547b022 Added an another helper method to WebRouterNode. 2022-01-08 13:01:43 +01:00
3809ca5a38 Rename UserController's main handler method to the new proper one. 2022-01-08 12:49:34 +01:00
90d62dbef7 Replaced std::strings with String in WebRoot. 2022-01-08 12:41:15 +01:00
159c784689 Removed HandlerInstance. 2022-01-08 12:39:04 +01:00
dff3156138 Cleaned up WebRoot. 2022-01-08 12:35:44 +01:00
15b9bb17e5 Removed the middleware stack from Request. 2022-01-08 12:27:42 +01:00
ec2eabacc1 Implemented middleware handling. Also converted middleware handlers to the new stystem. 2022-01-08 12:25:52 +01:00
ef18e705f4 Added a new Middleware class. 2022-01-08 12:05:33 +01:00
d873312915 Moved get_server from WebRoot to WebNode. 2022-01-08 12:00:12 +01:00
f00e5c5c9e Now the root node's type inthe webserver is a WebNode instead of a WebRoot. 2022-01-08 11:58:35 +01:00
163432e147 Make WebRoot use the new error handling system. 2022-01-08 11:51:39 +01:00
fd106fc785 Reworked error handling. 2022-01-08 11:47:39 +01:00
413e9efbc8 Implement setting http status codes. 2022-01-08 11:42:57 +01:00
e0b76706d9 Implemented the new node based routing. 2022-01-08 11:27:26 +01:00
01a5e1881d Started reworking routing. 2022-01-08 10:50:07 +01:00