Commit graph

20 commits

Author SHA1 Message Date
Josh
092f8bc5a2
Use UtcNow instead of Now for internal time keeping (#965) 2024-01-20 21:24:28 +00:00
Molly Phillips
c186715a3f
Move API authentication logic into DatabaseContext partial class (#906)
Move API authentication method into DatabaseContext partial class
2023-09-28 19:37:48 +00:00
Michael Youngling
170e824e96
Revert "Add online users endpoint to user API" (#790)
Revert "Add online users endpoint to user API (#789)"

This reverts commit d1e21b4e18.
2023-06-11 20:27:38 +00:00
koko
d1e21b4e18
Add online users endpoint to user API (#789)
* 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
2023-06-11 17:13:19 +00:00
Josh
2210541894
Fix memory leak in GameServer (#731)
* 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
2023-04-02 23:45:19 +00:00
Slendy
c34b7f3e79
Revert website Forbid and Unauthorized method usage to StatusCode
This is because by default ASP.NET expects an authentication scheme to be registered when using these methods.
2023-03-30 19:23:11 -05:00
Slendy
a603cdb002
Use Unauthorized instead of Forbid on Website & Api 2023-03-29 21:44:16 -05:00
Josh
329ab66043
Refactor serialization system (#702)
* 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
2023-03-28 00:39:54 +00:00
Zaprit
e483d325ae
User Search API (#680)
* Added User Search API

* Applied limit to user search

* Update ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs

Co-authored-by: Josh <josh@slendy.pw>

* Update ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs

Co-authored-by: Josh <josh@slendy.pw>

* Update ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs

Co-authored-by: Josh <josh@slendy.pw>

* 1 line fix, woo!

---------

Co-authored-by: Josh <josh@slendy.pw>
2023-02-20 04:37:37 +00:00
Josh
64b95e807d
Refactor Database class (#616)
Refactor Database into DatabaseContext
Moved into separate folder so it actually has a namespace instead sitting in the root
2023-02-15 23:54:30 -06:00
Josh
f1c5ad4002
Major refactor and reorganization of types (#652)
* 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
2023-02-13 22:02:58 -06:00
Josh
19ea44e0e2
Rework login and registration systems (#600)
* 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
2022-12-26 01:03:14 -08:00
Josh
d16132f67f
NET 7.0 support (#581)
* 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
2022-12-13 18:17:28 -06:00
Slendy
e67abe0164
Don't issue registration tokens for names that already exist 2022-11-13 22:17:41 -06:00
Josh
c7195df74f
Allow RegistrationTokens to have a username pre-selected (#524)
* 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
2022-10-31 20:48:09 -05:00
Slendy
355ec45b20
Add get user by username api endpoint 2022-10-04 00:02:33 -05:00
Josh
3ad211e5c8
Implement POST request rate limiting (#490)
* 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
2022-09-24 17:18:28 -05:00
Zaprit
ce0fe9edee
Added user invite system (#351)
* 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>
2022-07-24 02:43:00 +00:00
jvyden
c345eeebb9
Massive organization of classes and namespaces 2022-05-15 16:45:00 -04:00
jvyden
b2ec7eae57
Move servers to LBPU.PL.Servers 2022-05-14 23:37:55 -04:00
Renamed from ProjectLighthouse.API/Controllers/UserEndpoints.cs (Browse further)