* Add public_html folder, configuration and access methods to it
* Make Frontend BETA static resource resolution prefer public_html
* Add resolver for getting any file in public_html from webserver
* Test customized bundle loading from public_html
* Update gradle wrapper to 7.6
* Wrote scripts to React build or run dev server through gradle
* Disable cyclomatic-complexity check on PublicHtmlResolver
* Throw bad request exception on IllegalPathException
* Throw bad request exception on bad chars in URI query
- Moved all config settings with values in non leaf-nodes to leaf-nodes
- Time units (Now .Time and .Unit)
- Feature toggles (Now .Enabled)
- Wrote tests to ensure non-leaf node values are not used
Affects issues:
- Fixed#1363
- Store access log in database, clean logs after 30 days by default
- Add Webserver.Security.Access_log.Print_to_console setting
- Add Webserver.Security.Access_log.Remove_logs_after_days setting
Affects issues:
- Close#2328
* Add extension data to /v1/player endpoint
* Use node gradle plugin for building with yarn
* Add /v1/whoami endpoint
* Add back button to sidebar
* Selenium Tests for locale related js errors
* Convert locale system to use YAML-based storage
* Added a conversion process that runs on startup
* Replace cravatar.eu with crafatar.com for skins (more reliable)
* Add the Header made by Kopo to React
Co-authored-by: Antti Koponen <koponen942@outlook.com>
Affected issues:
- Resolve#1733
- Fixed#1092
- Resolve#1895
- Resolve#1965
- Partial #2260
- Partial #2099
- Customized_files.Path can now be used to choose where Html Customized files are placed
(Change this to `"<absolute path to git repo>/Plan/common/src/main/resources/assets/plan/web"`
for easy time developing)
- Customized_files.Enable_web_dev_mode can be used to enable modifications of all files
as well as bypass resource caching for instant updates on browser refresh.
Adding new files still needs recompiling the plugin, but this should speed up
modifications to existing parts of the website considerably.
- #2098
This allows grouping worlds together by matching a regex and avoiding thousands of lines if
some plugin generates worlds automatically.
Affects issues:
- Close#1656
Fixed security vulnerability with cookies not being invalidated properly
Request headers were not properly set for the Request object,
leading to the Cookie header missing when logging out, which then left
the cookie in memory. Rogue actor who gained access to the cookie could then
use the cookie to access the panel.
Made cookie expiry configurable with 'Webserver.Security.Cookie_expires_after'
Due to cookie persistence there is no way to log everyone out of the panel.
This will be addressed in a future commit with addition of a command.
Affects issues:
- Close#1740
Replaced Abstract Plugin Framework with Platform Abstraction Layer
Large amount of changes due to removal of features from the library,
and change of the way the abstraction is achieved.
Removes features from Plan:
Removed debug logging (Considered useless when debugging issues)
Removed /debug page (Considered useless when debugging issues)
Removed enable timing (Benchmarking utility was removed from the library)
- The new error logging only creates one log per error and has context
with the error if specified.
- Any duplicate lines in error stacktrace are not taken into account
when hashing to avoid recursive function errors being logged in different
files
Affects issues:
- Close#1246
- GeoLite2 downloads the file using License key, only if EULA is accepted
- Fallback to IP2C if GeoLite2 is not available
- Remove GeoIP.dat after successfully downloading GeoLite2-Country.mmdb
- Added case where geolocation fails to enable and doesn't cause issues
- Adds Apache commons-compress to the dependencies because of a tar archive
Affects issues:
- Fixed#1273
- Added Config setting Webserver.Security.CORS.Allow_origin
- Webserver returns the header for all requests
- Added an HTTP 204 response for OPTIONS-method to speed up CORS requests.
Affects issues:
- Close#1251
TimeZone setting accepts 'GMT+2', 'GMT-05:30', 'UTC' and 'server'
Accidentally discovered a bug where first boot used UTC when default was
supposed to be server timezone. The bug was fixed by removing
PlanConfig#getTimeZone calls in different constructors.
Affects issues:
- Close#718
Removed InfoSystem
- Removed /plan m setup
- Removed /planbungee setup
- Removed /planbungee con
- Removed /plan m con
- Removed all InfoRequests
- Removed /info web endpoint
- Removed ConnectionLog
Removed two config settings:
- Display of session accordion as table
(Accordion is table now)
- Display of most played world on sessions
(Always displayed now)
Removed html generation java code for player page
tables
Deprecated PlayerDeath related things
Removed AnalysisContainer data, and
server HealthInformation
Affects issues:
- Close#840