Skip to content

Commit

Permalink
fix: resolve 404 with deleted user sets and tickets (#3129)
Browse files Browse the repository at this point in the history
  • Loading branch information
wescopeland authored Feb 1, 2025
1 parent e53035b commit 0ece103
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 13 deletions.
8 changes: 8 additions & 0 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,14 @@ public function preferredLocale()
return $this->locale;
}

public function resolveSoftDeletableRouteBinding($value, $field = null)
{
return $this->where('display_name', $value)
->orWhere('User', $value)
->withTrashed()
->firstOrFail();
}

public function getRouteKey(): string
{
return !empty($this->display_name) ? $this->display_name : 'User';
Expand Down
12 changes: 8 additions & 4 deletions resources/views/components/user/breadcrumbs.blade.php
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
@props([
'targetDisplayName' => '',
'currentPage' => '',
'parentPage' => '',
'parentPageUrl' => '',
'currentPage' => '',
'user' => null, // ?User
])

<div class='navpath'>
<a href='/userList.php'>All Users</a>
&raquo;
@if (empty($currentPage))
<span class="font-bold"><a href="{{ route('user.show', $targetDisplayName) }}">{{ $targetDisplayName }}</a></span>
<span class="font-bold"><a href="{{ route('user.show', $user->display_name) }}">{{ $user->display_name }}</a></span>
@else
<a href="{{ route('user.show', $targetDisplayName) }}">{{ $targetDisplayName }}</a>
@if ($user->Deleted)
<span class="line-through">{{ $user->display_name }}</span>
@else
<a href="{{ route('user.show', $user->display_name) }}">{{ $user->display_name }}</a>
@endif
&raquo;
@if (!empty($parentPage))
<a href="{!! $parentPageUrl !!}">{{ $parentPage }}</a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
])

<x-app-layout pageTitle="{{ $user->display_name }}'s Claims">
<x-user.breadcrumbs :targetDisplayName="$user->display_name" currentPage="Claims" />
<x-user.breadcrumbs :user="$user" currentPage="Claims" />

<div class="mt-3 mb-6 w-full flex gap-x-3">
{!! userAvatar($user, label: false, iconSize: 48, iconClass: 'rounded-sm') !!}
Expand Down
4 changes: 3 additions & 1 deletion resources/views/pages/user/[user]/developer/sets.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
use function Laravel\Folio\{name, render, withTrashed};
withTrashed();
name('developer.sets');
render(function (View $view, User $user, DeveloperSetsService $pageService) {
Expand All @@ -29,7 +31,7 @@
pageTitle="{{ $user->display_name }} - Developed Sets"
pageDescription="View achievement sets developed by {{ $user->display_name }} for various games on RetroAchievements"
>
<x-user.breadcrumbs :targetDisplayName="$user->display_name" currentPage="Developed Sets" />
<x-user.breadcrumbs :user="$user" currentPage="Developed Sets" />

<div class="mt-3 -mb-3 w-full flex gap-x-3">
{!! userAvatar($user, label: false, iconSize: 48, iconClass: 'rounded-sm') !!}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
pageDescription="Compares unlocks between {{ $user->display_name }} and {{ $otherUser->display_name }} for {{ $game->Title }}"
>
<x-user.breadcrumbs
:targetDisplayName="$otherUser->display_name"
:user="$otherUser"
:parentPage="$game->Title"
:parentPageUrl="$game->permalink"
currentPage="Compare Unlocks"
Expand Down
2 changes: 1 addition & 1 deletion resources/views/pages/user/[user]/progress.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
:pageDescription="$seo['pageDescription']"
>
<div>
<x-user.breadcrumbs :targetDisplayName="$user->display_name" currentPage="Completion Progress" />
<x-user.breadcrumbs :user="$user" currentPage="Completion Progress" />

<div class="mt-3 -mb-3 w-full flex gap-x-3">
{!! userAvatar($targetUsername, label: false, iconSize: 48, iconClass: 'rounded-sm') !!}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

<x-app-layout pageTitle="{{ $pageTitle }} - {{ $user->display_name }}">
<x-user.breadcrumbs
:targetDisplayName="$user->display_name"
:user="$user"
:currentPage="$pageTitle"
/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

<x-app-layout pageTitle="{{ $pageTitle }} - {{ $user->display_name }}">
<x-user.breadcrumbs
:targetDisplayName="$user->display_name"
:user="$user"
:currentPage="$pageTitle"
/>

Expand Down
6 changes: 4 additions & 2 deletions resources/views/pages/user/[user]/tickets/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
use App\Platform\Services\TicketListService;
use Illuminate\View\View;
use function Laravel\Folio\{middleware, name, render};
use function Laravel\Folio\{middleware, name, render, withTrashed};
withTrashed();
middleware(['auth', 'can:viewAny,' . App\Models\Ticket::class]);
name('developer.tickets');
Expand Down Expand Up @@ -43,7 +45,7 @@

<x-app-layout pageTitle="Tickets - {{ $user->display_name }}">
<x-user.breadcrumbs
:targetDisplayName="$user->display_name"
:user="$user"
currentPage="Tickets"
/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@

<x-app-layout pageTitle="{{ $pageTitle }} - {{ $user->display_name }}">
<x-user.breadcrumbs
:targetDisplayName="$user->display_name"
:user="$user"
:currentPage="$pageTitle"
/>

Expand Down

0 comments on commit 0ece103

Please sign in to comment.