* Simplify website rank badges to use semantic classes
* Fix ambiguity between partial display types
* Add profile vanity tags and needed migration
* Make form field read only to non-administrators
* Display lock icon if user is not admin to minimize confusion
* Also display lock icon for username field since it's readonly
* Fix up naming consistency issues and edit migration accordingly
* Apply suggestions from code review
* Add space between placeholder property and ternary operator
* Initial work for score migration
* Finish score migration
* Implement suggested changes from code review
* Make Score Timestamp default the current time
* Chunk insertions to reduce packet size and give all scores the same Timestamp
* Fix serialization of GameScore
* Break score ties by time then scoreId
* Make lighthouse score migration not dependent on current score implementation
* Create interactions management page and basic GET logic
* Fix client side query and add blocked count as well as comments nitpick
* Implement basic backend logic for interactions management
* Remove errant null/whitespace checks and add border to blocked users partials
* Implement user page's respect to profile privacy settings
* Fix issue where user can't view their own profile if privacy settings are tightened
* Fix other issues with profile access
* Remove excess conditional expression from PSN privtype check
* Check if access is allowed within request handler and hide bio/RA if private
* Fix PSN privacy level check
* Display private users in search and add base UI class to level lock icon
* Rename everything from interactions to privacy for clarity
* Dagg requested an eyeball
Co-authored-by: vilijur <69403080+vilijur@users.noreply.github.com>
* Clarify profile settings page title
* Implement level privacy settings
* Formatting nitpicks within UserPrivacyPage
* Add discard changes buttons
* Apply suggestion from code review
* Consolidate privacy settings areas together
* Grammar nitpick for comments enable/disable dropdown
* Remove un-needed blue UI segment
* Allow mods to issue disable comments case regardless of privacy settings
Also addresses a few frontend and backend nitpicks left unaddressed by previous commits
* Remove limiting AND operator expression
* Grammar clarity on disable comments button
* Add missing hidden button divider under Wipe Earth Decorations
* No eyeball -m88youngling
Removes eyeball from actual privacy settings page to match styling
* Use long-text description for privacy type dropdowns
* Use long-text description for comments toggle dropdown
* Implement slot page privacy
* Grammar nitpicks with Daggintosh
* Daggintosh grammar review second edition
* Once again put request handler arguments on one line
* Rename LevelsPrivate variable to SlotsPrivate for internal consistency
* Fix issue with PSN slot privacy type
* Un-break comments
* Apply most of the suggestions from code review
* Correct form dropdown values for privacy types
* Potentially fix broken privacy type extension
* Slightly rework access calculation extension method
* Fix issues with if statements
* Apply suggestions from code review
* Make everything translatable
---------
Co-authored-by: vilijur <69403080+vilijur@users.noreply.github.com>
* Remove most non DI usages of DbContext
* Optimize website queries and refactor startup to use top level statements
* Remove unused functions in UserEntity and SlotEntity
* Optimize LBP1 LevelTags
* Refactor error modal into its own partial
* Fix unresolved error string in TwoFactorPartial
* Use tuple model instead of ViewData for error title and message
* Apply suggestions from code review
* Fix mod reason/notes overflow issue & show expiration time if applicable
* Remove extra whitespace
* Wrap using line break instead of overflow scroll bar
* Remove un-required overflow inline style
* Reorganize tests into unit/integration pattern
* Make DbSets virtual so they can be overridden by tests
* Add MessageControllerTests
* Implement DigestMiddlewareTests
* Refactor SMTPHelper to follow DI pattern which allows for mocking in unit tests.
* Fix MailQueueService service registration and shutdown
* Implement tests for Status and StatisticsController and reorganize tests
* Start working on UserControllerTests
* Start refactoring tests to use In-Memory EF provider
* Refactor integration tests to reset the database every time
Change default unit testing database credentials
* Update credentials to use default root with different passwords
* Throw exception when integration db is not available instead of falling back to in-memory
* Evaluate DbConnected every time
* Remove default DbContext constructor
* Setup DbContexts with options builder
* Convert remaining Moq DbContexts to InMemory ones
* Add more tests and use Assert.IsType for testing status code
* Add collection attribute to LighthouseServerTest
* Remove unused directives and calculate digest in tests
* Fix digest calculation in tests
* Add test database call
* Clear rooms after each test
* Fix CommentControllerTests.cs
* Disable test parallelization for gameserver tests
* Fix failing tests
Fix SlotTests
Make CreateUser actually add user to database
Fix dbConnected Lazy and change expected status codes
Properly Remove fragment from url for digest calculation
Fix digest calculation for regular requests
[skip ci] Remove unused directive
Don't use Database CreateUser function
Get rid of userId argument for generating random user
Rewrite logic for generating random users
Fix integration tests
* Implement changes from self-code review
* Fix registration tests
* Replace MailQueueService usages with IMailService
* Add the basics for duplicate level flagging
* Use this.BadRequest instead of StatusCode(500)
* Remove redundant slot creator check
* Include creator entity
* Redirect back to slot page for unauthenticated reqs
* Check if reporter = level creator on server side
* A few formatting nitpicks with the webhook
* Move external url config to a shorter var
* Change duplicate flag button icon to a flag
* Remove accidental dollar sign
Co-authored-by: Josh <josh@slendy.pw>
* Remove another accidental dollar sign
Co-authored-by: Josh <josh@slendy.pw>
* Three dollar signs... I'm blind
Co-authored-by: Josh <josh@slendy.pw>
* Update ProjectLighthouse.Servers.Website/Controllers/Moderator/ModerationSlotController.cs
Co-authored-by: Josh <josh@slendy.pw>
---------
Co-authored-by: Josh <josh@slendy.pw>
* Display a lock icon next to locked levels
* C# Return Switch shenanigans
* No clue where that line break came from
* Don't render a semicolon
* Move permission level color/lock icon to website extension
* Simplify GetLevelLockIcon
---------
Co-authored-by: Josh <josh@slendy.pw>
* 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
* Add admin/mod badges to UserCardPartial
* Correct vertical alignment of badges
* Move most of styling to stylesheet, lazy but it works
* Implement more modular role coloring for UserLinkPartial and UserCardPartial
---------
Co-authored-by: Slendy <josh@slendy.pw>
* Attempt to remodel PhotoSubject and Photo relationship
* Fix migration name
* Use exactName for migration lock
* Revert "Use exactName for migration lock"
This reverts commit 76cee6a3ff.
* Set command timeout to 5 minutes for database migrations
* Delete unused PhotoSubjects in migration
* Clean up website queries and finalize subject refactor
* Add migration to remove PhotoSubjectCollection
* Add grace period for container startup and optimize startup
* Make config backup copy original file
* Allow docker entrypoint to fix data permissions
* 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
* Link to reviewer in card and pad labels
* Update LICENSE to fill in placeholders
The licensor placeholders at the bottom were left untouched so I filled in the information.
* Revert LICENSE change
* Update LICENSE
* Add username to mod cases if user is deleted
* Add timezone package to docker container
* Remove extra space in migration sql statement
* Changes from self-review
* Initial support for leaderboards and some refactoring
* Start of UI redesign
* Finish slot and user redesign, added deletion of comments, reviews, scores, and photos
* Remove leftover debug print
* Fix bug in permission check
* Simplify sidebar code and add hearted and queued levels
* Fix navbar scrolling on mobile and refactor SlotCardPartial
* Initial work for TOTP 2FA
* Fix bug in 2FA code script
* Add translations for two factor and /disable2fa
* Fix compilation error
* Add TwoFactorLoginPage
* Add two factor login process
* Little bit of backup code work
* Finish two factor
* Fix unit tests
* ??? goofy ahh code
* Use SHA-256 instead of SHA-512
* I guess SHA-256 doesn't work either
* Fix comments in Base32 helper
* Move QRCoder package to website
* Add name to endregion comment in css
* Fix bug with redirects
* Baseline LBP3 Adventure slot support
VERY unsafe and hacky to use as of now, this is just testing the waters.
* ADC file type checking
* Refactor & trimming
This might need to be adjusted if any feature is found to be missing
* isAdventure added to API
* Prototype Adventure icons for Website
I am not an artist, please make this more in line with the originals.
* Override border radius for LBP3 Adventures
* Cleaning
* Remove WriteLine and unused property
* Remove unused libraries
* Handle tracking and submitting of Adventure scores
* Check for null instead of 0
Non-adventure slots will report null, not 0
* Score for adventure slot instead of main slot
* Tweaks for PR
* Identify levels for photos by level resource
Verify this doesn't break anything.
* SlotCardPartial merge with main changes
* PR resolution 2
* probably not what was wanted
Use variables for style extension
* Internal slots already properly identified
* Return line breaks to end of Slot.cs
* Remove line break added by Github
thanks
* Github.
* Make this a one-liner
* Reduce to two lines
* This can also be one line
* This can *also* be one line
* Update ProjectLighthouse.Servers.Website/Pages/Partials/SlotCardPartial.cshtml
Co-authored-by: Josh <josh@slendy.pw>
* PR changes
* Update ProjectLighthouse/Migrations/20220916141401_ScoreboardAdvSlot.cs
Co-authored-by: Josh <josh@slendy.pw>
Co-authored-by: Josh <josh@slendy.pw>
* Initial work for user settings page
* Finish user setting and slot setting pages
* Don't show slot upload date on home page and fix team pick redirection
* Fix upload image button alignment on mobile
* Fix image upload on iPhone
* Remove unused css and add selected button color
* Fix login email check and bump ChromeDriver to 105
* Remove duplicated code and allow users to leave fields empty
* Add unpublish button on level settings and move settings button position
* Don't show edit button on mini card
* Self review bug fixes and users can no longer use an in-use email
* Add LBP1 tags, more strict resource checking, and more.
* Fix unit tests
* Add more length checking to dependency parser
* Online editor problems
* Fix tests pt 2
* Self code review and fixed digest bugs
* Don't add content length if it was already set
* Fix status endpoint
* Fix review bug and simplify review serialization
* Fix a typo in review serialization
* Remove duplicated code and fix search
* Remove duplicate database call
* Many bug fixes and performance enhancements
* Fix warnings and speed up photos with me
* Finish refactoring user serialization
* Finish refactoring user serialization
Use GameTokens instead of User when possible
Prevent negative page sizes
* Fix debug compilation
* Add gzip compression to example nginx config
* Remove deflate changes
* Add UsernameFromWebToken
Co-authored-by: Jayden <jvyden@jvyden.xyz>
* Initial commit to support developer slots
* Remove hearting story levels, prevent race condition in adding dev slots, and remove LastContactHelper local db object.
* Fix photos taken in pod showing wrong level.
* Add support for pod and create mode photos
* Add time display to photos and added photo display to level page
* Add pagination to in game photos
* Update in pod description
* Fix migration
* Adjust wording of photos taken on local slots
* Set slot default type to User
Fixes old slots being set to developer slots
* Apply suggestions
* Add player count to developer slots
Co-authored-by: Jayden <jvyden@jvyden.xyz>