Commit graph

69 commits

Author SHA1 Message Date
koko
be5a29d3c9
Simplify rank badges and implement profile tags (#880)
* 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
2023-08-28 20:37:06 +00:00
Josh
70a66e6034
Migrate scores to use proper relationships (#830)
* 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
2023-08-19 07:32:38 +00:00
Josh
65f317d9bd
Improve website tests (#842)
* Improve website tests

* Use DefaultLang instead of hard coding English
2023-08-03 20:09:32 -05:00
koko
6558d09c8d
Implement profile and level privacy settings (#841)
* 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>
2023-07-22 21:49:56 +00:00
koko
f084189a29
Add workaround for the clickable user links in a grief report (#846) 2023-07-21 14:55:04 +00:00
Josh
e43397ac6a
Implement property dependency injection for the website (#806)
* 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
2023-06-20 05:02:24 +00:00
koko
77e46a0721
Refactor error modal into its own partial (#785)
* 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
2023-06-08 04:01:59 +00:00
koko
9646dea44a
Fix mod reason/notes overflow issue & show expiration time if applicable (#765)
* 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
2023-05-22 01:40:34 +00:00
Josh
1bf4ed6218
Add more unit tests (#757)
* 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
2023-05-15 15:00:33 -05:00
koko
6f55ce3226
Add basic ability to flag duplicate levels (#753)
* 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>
2023-04-27 02:48:19 +00:00
koko
c50e53ad9a
Display a lock icon next to locked levels (#738)
* 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>
2023-04-11 02:16:03 +00:00
koko
89877d359f
Add comment form max char limit validation (#722)
* Add comment form max char limit validation, minor visual nitpick

* Italicize banned/disabled/etc messages within comments
2023-03-30 06:03:12 +00: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
koko
05b71b0d22
Add admin/mod badges on UserCardPartial (#697)
* 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>
2023-03-10 21:17:44 +00:00
Josh
017dcd6888
Make PhotoSubjects use a one to many relationship (#687)
* 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
2023-02-24 04:20:55 +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
koko
30cffef2f2
Highlight moderator/administrator user account links (#670) 2023-02-12 01:32:01 +00:00
koko
b4326d4798
Link to reviewer in card and pad labels (#657)
* 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
2023-02-08 15:34:49 -06:00
Josh
4559d26a54
Fix bug where users can't be deleted (#648)
* 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
2023-01-29 22:10:36 -06:00
Slendy
e061987165
Revert PRs #646 and #647 2023-01-26 19:45:20 -06:00
koko
d119bacd77
Fix >50 comments message 2023-01-26 19:58:30 -05:00
koko
d44fb89b03
Fix comments not being disabled if banned 2023-01-26 19:42:59 -05:00
koko
141d955f52
Website QOL Changes (#646)
so Mike stops complaining about the neglected mod menu - sudokoko

Co-authored-by: Dagg <daggintosh@outlook.com>
2023-01-26 23:29:54 +00:00
Josh
b5877bc10c
Remove duplicate scores (#622)
* Remove duplicate scores

* Optimize score migration
2023-01-10 17:36:43 -06:00
Slendy
dc26766b8a
Clean up UI design for 2FA 2023-01-01 23:51:53 -06:00
Josh
f4cad21061
Website UI redesign and QOL changes (#601)
* 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
2022-12-19 15:20:49 -08:00
Josh
2d67870ded
Fix Two-Factor form on mobile (#593)
* Make textboxes use keypad input on mobile

* Fix input boxes on mobile
2022-12-15 14:28:28 -06:00
Josh
14d2f0305e
Implement 2FA (#577)
* 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
2022-12-12 21:11:39 -06:00
Josh
b3a00da554
Refactor deserialization and authentication (#550)
* Refactor deserialization and more

* Refactor authentication flow

* Fix unit tests

* Make deserialization better
2022-11-10 21:14:16 -06:00
Slendy
abddf5e9aa
Add timestamps to logs and cleanup some code 2022-10-01 16:28:52 -05:00
Dagg
dfd1d9b748
LittleBigPlanet 3 Adventure Support (#477)
* 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>
2022-09-20 16:08:02 -05:00
Josh
f6a7fe6283
User settings, level settings, language and timezone selection and more. (#471)
* 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
2022-09-17 14:02:46 -05:00
Josh
d640c000aa
Implement LBP1 tags, stricter resource checking, and more (#463)
* 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
2022-08-31 20:38:58 -05:00
jvyden
643b00512a
Fix error when slot on case does not exist 2022-08-20 19:18:40 -04:00
jvyden
3e8344c8f3
Refresh the website's UI
Squashed commit of the following:

commit 47d268cc29560e72b5102eabc80d1f5743c103bb
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 21:14:09 2022 -0400

    Make profile pictures square

commit a5ae8a53918708fea215a5676beea2116078bd34
Merge: f5d8a9e f06fcc4
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 18:43:26 2022 -0400

    Merge branch 'main' into ui-refresh

commit f5d8a9e5ed2d9aaafd63d113a5b064d042f7ba48
Merge: fbf1695 2ad9804
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 17:03:33 2022 -0400

    Merge branch 'main' into ui-refresh

commit fbf16953893b2e294df21a0c60e561dbb409aa92
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 17:02:32 2022 -0400

    Fix test failures

commit 70cb5513cb8bae9d85b2b04bc9a3fb194f0a66a5
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 16:56:43 2022 -0400

    Improve 404 logic

commit b2743c4c8af736d2501c7bdd47cce19a6a01902d
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 16:44:36 2022 -0400

    Add 404 page

commit 3d0926d3c99d347617e5147ac632d8ec6bab18f9
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 16:27:03 2022 -0400

    Update icons for slots and team picks

commit c61405d83d71d9e67ab4c2775f76b3f7d6c2e827
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 16:12:45 2022 -0400

    Add background color, put content on segment

commit f7d9ee6a0accc9d664f8d2aefabcce4eb8789cd6
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 15:53:58 2022 -0400

    Add colors to mod/admin panel buttons, update fomantic

commit e680c5e6eb14f22792dc62bda029072d3f11f423
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 03:20:16 2022 -0400

    Fix landing page title

commit c779aa4b417af623aa47db0ce9875f49a9ee5c4b
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 03:13:32 2022 -0400

    Remove useless css

commit 57f6387c1214b319fe3e0b14df32a7bbecf51548
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 03:11:45 2022 -0400

    Add hover effect to logo

commit 15746911f92037abec115a83fa625ef0fda39e3a
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 02:39:04 2022 -0400

    Change currently_online string to english better

commit b98a90f1e9f0b3af7e65104cdd0acbc74c6a244e
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 02:33:41 2022 -0400

    Run GameApiTests sequentially, fix web tests

commit 630c08d3b80b74be11b0648b24011f89de705130
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 02:20:01 2022 -0400

    Add user links to comments

commit a91f136c87bc973300c74d6f97696cd7cbf1046a
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 02:14:22 2022 -0400

    Add ability for photos to have user links

commit d9e2a58e37dafe842b0b10b463cde1a2cb962052
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 01:33:21 2022 -0400

    Add ability to link to users and include their profile picture

commit 200196ce1f58638da7da368025ec0a88cacc14b6
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 01:33:07 2022 -0400

    Rename "users" to "people" in Landing Page

commit 07d229821099c069979a21bbd529b549c6f4e6b6
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 00:59:17 2022 -0400

    Fix bug with name on mobile

commit aecad7aeb69b63c0e517e85fba0c4de292d202f4
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 00:44:56 2022 -0400

    Make gap between header and title 17px

commit 46fa79b84e46b7ae90232724d82f7bd9e1a74f17
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 00:40:00 2022 -0400

    Fix user card stats oddity

commit 3b4c19f5b7e0199baeb88e27c918fbb17b5f777a
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 00:24:38 2022 -0400

    Mobile improvements, make avatars rounded

commit cf9533410042cabf456be0cba34ac5d80ef86046
Author: jvyden <jvyden@jvyden.xyz>
Date:   Fri Aug 19 00:02:01 2022 -0400

    Redesign header

commit f24aec0367d8375f3eaea94ea3579d86256c94be
Author: jvyden <jvyden@jvyden.xyz>
Date:   Thu Aug 18 23:36:42 2022 -0400

    Fix runtime compilation not working

commit 3147e12865feecf792a46088711691160c76b0c6
Author: jvyden <jvyden@jvyden.xyz>
Date:   Thu Aug 18 22:43:21 2022 -0400

    Add support for custom fomantic theme
2022-08-19 21:15:41 -04:00
Josh
d23a264b8a
Lots of bug fixes and performance improvements (#410)
* 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>
2022-08-13 00:56:17 +00:00
jvyden
22fc2ead98
Show dismissed case count on mod panel 2022-08-05 22:02:55 -04:00
jvyden
4718970f6b
Add ability for cases to perform actions 2022-08-05 20:32:35 -04:00
jvyden
96e8c7f71e
Add support for dismissing cases 2022-08-05 19:07:43 -04:00
jvyden
1996c1cdbb
Rename case properties, add dismissal button 2022-08-05 17:53:48 -04:00
jvyden
b3d91fd470
Reduce CaseTypes to those that can be temporary 2022-08-05 17:18:43 -04:00
jvyden
b6da930e20
Merge main into mod-panel 2022-08-05 17:02:19 -04:00
Josh
21a7a8711d
Fix posters' comments not showing ratings (#393) 2022-08-02 09:11:20 -04:00
Josh
fdf1988a34
Implement online story features and photos taken in levels (#389)
* 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>
2022-08-01 19:46:29 +00:00
jvyden
f1b44af420
Make cases green 2022-07-27 17:57:49 -04:00
jvyden
7ba50e26f5
Add mod notes to ban cases, improve case display 2022-07-27 17:54:32 -04:00
jvyden
82c5a80f32
Fix report urls 2022-07-27 16:58:18 -04:00
jvyden
cc7022cf48
Merge branch 'main' into mod-panel 2022-07-27 16:55:16 -04:00
jvyden
f0befef31f
Translate UserStatus, titles of pages in header 2022-07-27 16:37:38 -04:00