* 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>
* Add the ability for moderators to forcibly lock levels
* Prevent forcibly locking an already locked level
I had to rollback and re-commit this because I was getting some weird error within Rider.
* Correct moderation notice header styling & remove errant text
* Fix null case bug in BannedUserPage and properly add no expiration text
* Correct maximum expiration hour to 23 (uses 24-hour)
* Improve wording for do not expire string
* Handle empty case reason string
* Move list to it's own div per HTML spec
* Move maximum expiration DateTime to the model
* Correct linq statement chaining style
* Use lambda operator instead of explicit accessor for MaximumExpiration
* Render line breaks in announcement content
* Track announcement publisher
* Change paragraph tag to a div for consistency
* Fix bottom padding for announcement content
* Track publisher user entity rather than just the username
* Potentially fix a migration failure
* Final code cleanup
* Fix linq statement chaining style
---------
Co-authored-by: Dagg <daggintosh@outlook.com>
* Allow moderators to view story levels on website
Show comments to moderators on in-game story levels that show the levels id
* Only show LH ID comment on the first page
* Improve game server announce by using StringBuilder
* Implement web announcements (condensed commit)
* Implement discord webhook support
* Display a separate message if there are no announcements
* Fix announcement string unit tests
* Fix header admin button unit test
* Clarify announcement id variable name
* Increase webhook truncation limit to 250 chars
* Convert announce text to string when returning 200
* Fix announcement unit tests ... again
* Make announcement text input a textarea rather than a simple input
* Fix styling discrepancy
* Clarify submission button
* Improve announcement webhook & set default textarea row amount
* 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
* Move censor/msg logging to MessageController & separate LogAreas/config
* Correct LBP character limit to 95
* Log filtered comments as well
* Remove two unnecessary variables from CensorHelper
* Add censor logging to SlotPage/UserPage controllers and improve logging slightly
* Remove accidental dollar sign in log
* Grammatical nitpick in CommentController.cs
* Contextual nitpick in MessageController.cs
* Add escaped quotes in CommentController log to match the rest
* Increase limit to account for descriptions, magic mouth, etc.
* Consolidate LogChatMessages logging into Filter log area to prevent confusion
* Apply code review suggestions
* Refactor RepeatingTaskHandler into an ASP.NET service
* Add unit tests for RepeatingTaskService
* Make repeating task unit tests work independent of time
* Fix weird behavior when task is canceled
* Log censored messages through filter & dead code removal
* Log original message instead of filtered message
* Better use of StringBuilder in CensorHelper, one can now send the server 64 MB of just the word fuck without things exploding into a mess of GC.
* Fix infinite loop caused by my migraine <3
* Minor code nitpicks and remove "restitched"/"h4h" from default censor list
Realistically "restitched" and "h4h" should not be in the default content filter list as they aren't causing harm to anyone. It seems these were added jokingly and nobody took them out.
* Add a few more definitions to the default swear filter list
* Fix possible crash when censoring using uwu mode
* Apply suggestions from code review
* "I am...inevitable." - Errant Whitespace, 2023
Apply code review suggestions
Co-authored-by: Josh <josh@slendy.pw>
* A few more code review suggestions
* Clarify character limit constant naming
---------
Co-authored-by: Rosie <alkalinethunder@gmail.com>
Co-authored-by: Josh <josh@slendy.pw>