* Add /api/v1/users/online endpoint
* Fix chaining style
* Return empty list if none online
* Return by ascending login time and limit to 50
* Improve pagination clamping
* Correct login time sort
* Convert entities to serializable after aggregating rather before
* Cache instances of CustomXmlSerializer and create readonly constants for reused settings
* Change CustomXmlSerializer and serializer cache to work with deserializer
* Initial work for serialization refactor
* Experiment with new naming conventions
* Mostly implement user and slot serialization.
Still needs to be fine tuned to match original implementation
Many things are left in a broken state like website features/api endpoints/lbp3 categories
* Fix release building
* Migrate scores, reviews, and more to new serialization system.
Many things are still broken but progress is steadily being made
* Fix Api responses and migrate serialization for most types
* Make serialization better and fix bugs
Fix recursive PrepareSerialization when recursive item is set during root item's PrepareSerialization, items, should be properly indexed in order but it's only tested to 1 level of recursion
* Fix review serialization
* Fix user serialization producing malformed SQL query
* Remove DefaultIfEmpty query
* MariaDB doesn't like double nested queries
* Fix LBP1 tag counter
* Implement lbp3 categories and add better deserialization handling
* Implement expression tree caching to speed up reflection and write new serializer tests
* Remove Game column from UserEntity and rename DatabaseContextModelSnapshot.cs back to DatabaseModelSnapshot.cs
* Make UserEntity username not required
* Fix recursive serialization of lists and add relevant unit tests
* Actually commit the migration
* Fix LocationTests to use new deserialization class
* Fix comments not serializing the right author username
* Replace all occurrences of StatusCode with their respective ASP.NET named result
instead of StatusCode(403) everything is now in the form of Forbid()
* Fix SlotBase.ConvertToEntity and LocationTests
* Fix compilation error
* Give Location a default value in GameUserSlot and GameUser
* Reimplement stubbed website functions
* Convert grief reports to new serialization system
* Update DatabaseModelSnapshot and bump dotnet tool version
* Remove unused directives
* Fix broken type reference
* Fix rated comments on website
* Don't include banned users in website comments
* Optimize score submission
* Fix slot id calculating in in-game comment posting
* Move serialization interfaces to types folder and add more documentation
* Allow uploading of versus scores
* Start of reorganization and cleanup
* Remove duplicate title id
* Refactor types
* Fix Release building
* Move classes in /Types to a Types namespace
* Fix compilation error (RoomVisualizerPage strikes again)
* Fix bugs created from auto merge
* Fix auto-merge compilation error
* Changes from review/fix failed merge
* Initial work for verifying login ticket signatures
* Add candidate psn public key
* Add candidate psn public key and fix nuget packages
* Finalize npticket changes
* Add support for ticket version 3.0
* Rework login system to link platform accounts instead of using ip addresses
* Make linked accounts green instead of blue
* Fix api building
* Fix unit tests
* Actually fix unit tests
* Set unit test user's linked platform
* Why was this the wrong default value?
* Fix username change code
* Make TicketHash hash the entire ticket instead of just the serial
* Send password setup email when user sets their email for the first time
* Changes from self review
* NET 7.0 support
* Bump Pomelo MySql to support EF7
* Its net7.0 time
* Trying to resolve dependencies by hand
* Fix .NET 7 warnings
* Bump InfluxDB version
* Fix bad null handling
* Add prefilled username to registration token
* call toString on query to work with EF
* Fix typo in RegisterForm.cshtml
* Only show username notice if the user's username hasn't been chosen already
* Add confirmation message to DeleteUserCommand
* Initial work for rate limiting
* Refactor GameServerStartup and change default rate limit config
* Adjust config naming and add Enabled option to global and override rate limits
* Fix LBP3 republish bug
* Fix bugs in rate limiting and allow for multiple matched overrides
* Add this qualifier for private variable
* Changes from self review
* Added user invite system
* Added user invite system
* Revert recent migrations and try again
* stopped implicitly assigning token variables
* Added correct context to migrations
* Apply suggestions from code review
Some grammar changes, etc.
Co-authored-by: Jayden <jvyden@jvyden.xyz>
* Updated the API key page
* Removed enabled field from APIKey
* Removed reference to APIKey.Enabled
* Add creation guide text
* Fix this.Forbid() usage
Causes an exception on my machine for some reason, always has.
* Fix more forbid usages
* Return 404 if trying to generate token when private registration is disabled
* Capture authentication schema more cleanly
Co-authored-by: Jayden <jvyden@jvyden.xyz>