* 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
* 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
* Disallow moderators/administrators from issuing cases against each other
* Resolve suggestions from reviewers
* Only request user from db if id is valid
[skip ci] Update the localization files
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
If this breaks something, blame koko for convincing me to merge this
* Add proper ban page upon logging in
* Remove two extra line break tags that don't need to be there
* Fix timestamp formatting
* Properly display timestamps in correct timezone
* Fix formatting issues with ban page
* Remove extra parenthesis which would be rendered on-page
* Add to redirect middleware to prevent navigating to other pages
* Small nitpick, renaming UserBannedPage to BannedUserPage
* Resolve nitpicks from reviewers
* Remove un-necessary log message in LoginForm
* Fix ban reason translatable string argument
* Word choice nitpick ("Ban Created" -> "Ban Issued")
* Final adjustments and nitpicks, visual and grammatical
* Resolve requested changes from reviewers
* 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
* 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
* Implement login with email
* Add confirm age checkbox to register page
* Fix registration unit tests
* Fix registration unit tests for real this time
Co-authored-by: Dagg <32235163+daggintosh@users.noreply.github.com>
* 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