forge/app/Http/Controllers/UserController.php

39 lines
945 B
PHP
Raw Normal View History

<?php
2025-01-30 00:23:55 -05:00
declare(strict_types=1);
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
2024-09-11 23:08:58 -04:00
use Illuminate\View\View;
class UserController extends Controller
{
use AuthorizesRequests;
public function show(Request $request, int $userId, string $username): View
{
$user = User::whereId($userId)
->with(['following', 'followers'])
->firstOrFail();
$mods = $user->mods()
2024-09-30 22:53:32 -04:00
->with([
'users',
'latestVersion',
'latestVersion.latestSptVersion',
])
->orderByDesc('created_at')
->paginate(10)
->fragment('mods');
2025-01-30 00:50:28 -05:00
abort_if($user->slug() !== $username, 404);
2025-01-30 00:50:28 -05:00
abort_if($request->user()?->cannot('view', $user), 403);
2025-01-30 00:23:55 -05:00
return view('user.show', ['user' => $user, 'mods' => $mods]);
}
}