diff --git a/app/Http/Controllers/Personal/Comment/IndexController.php b/app/Http/Controllers/Personal/Comment/IndexController.php index 40e1f2ad..ee2bed4d 100644 --- a/app/Http/Controllers/Personal/Comment/IndexController.php +++ b/app/Http/Controllers/Personal/Comment/IndexController.php @@ -4,13 +4,14 @@ use App\Http\Controllers\Controller; use Illuminate\Contracts\View\Factory as ViewFactory; +use Illuminate\Contracts\Auth\Authenticatable; class IndexController extends Controller { - public function __invoke(ViewFactory $view_factory) + public function __invoke(ViewFactory $view_factory, Authenticatable $user) { /** @phpstan-ignore-next-line */ - $comments = auth()->user()->comments; + $comments = $user->comments; return $view_factory->make('personal.comment.index', ['comments' => $comments]); } diff --git a/app/Http/Controllers/Personal/Liked/DeleteController.php b/app/Http/Controllers/Personal/Liked/DeleteController.php index cbb06cbd..f0b48b16 100644 --- a/app/Http/Controllers/Personal/Liked/DeleteController.php +++ b/app/Http/Controllers/Personal/Liked/DeleteController.php @@ -4,13 +4,14 @@ use App\Http\Controllers\Controller; use App\Models\Post; +use Illuminate\Contracts\Auth\Authenticatable; class DeleteController extends Controller { - public function __invoke(Post $post) + public function __invoke(Post $post, Authenticatable $user) { /** @phpstan-ignore-next-line */ - auth()->user()->likedPosts()->detach($post->id); + $user->likedPosts()->detach($post->id); return redirect()->route('personal.liked.index'); } diff --git a/app/Http/Controllers/Personal/Liked/IndexController.php b/app/Http/Controllers/Personal/Liked/IndexController.php index 478f8e32..0a056fb8 100644 --- a/app/Http/Controllers/Personal/Liked/IndexController.php +++ b/app/Http/Controllers/Personal/Liked/IndexController.php @@ -3,14 +3,15 @@ namespace App\Http\Controllers\Personal\Liked; use App\Http\Controllers\Controller; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\View\Factory as ViewFactory; class IndexController extends Controller { - public function __invoke(ViewFactory $view_factory) + public function __invoke(ViewFactory $view_factory, Authenticatable $user) { /** @phpstan-ignore-next-line */ - $posts = auth()->user()->likedPosts; + $posts = $user->likedPosts; return $view_factory->make('personal.liked.index', ['posts' => $posts]); } diff --git a/app/Http/Controllers/Personal/Main/IndexController.php b/app/Http/Controllers/Personal/Main/IndexController.php index 63769eab..31986848 100644 --- a/app/Http/Controllers/Personal/Main/IndexController.php +++ b/app/Http/Controllers/Personal/Main/IndexController.php @@ -3,16 +3,17 @@ namespace App\Http\Controllers\Personal\Main; use App\Http\Controllers\Controller; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\View\Factory as ViewFactory; class IndexController extends Controller { - public function __invoke(ViewFactory $view_factory) + public function __invoke(ViewFactory $view_factory, Authenticatable $user) { /** @phpstan-ignore-next-line */ - $data['countComments'] = count(auth()->user()->comments); + $data['countComments'] = count($user->comments); /** @phpstan-ignore-next-line */ - $data['countLiked'] = count(auth()->user()->likedPosts); + $data['countLiked'] = count($user->likedPosts); return $view_factory->make('personal.main.index', ['data' => $data]); } diff --git a/app/Http/Controllers/Post/Comment/StoreController.php b/app/Http/Controllers/Post/Comment/StoreController.php index 1205e1e6..b07a1dc5 100644 --- a/app/Http/Controllers/Post/Comment/StoreController.php +++ b/app/Http/Controllers/Post/Comment/StoreController.php @@ -6,15 +6,16 @@ use App\Http\Requests\Post\Comment\StoreRequest; use App\Models\Comment; use App\Models\Post; +use Illuminate\Contracts\Auth\Authenticatable; class StoreController extends Controller { - public function __invoke(StoreRequest $request, Post $post) + public function __invoke(StoreRequest $request, Post $post, Authenticatable $user) { - $data = $request->validated(); + $data = $request->validated(); $data['post_id'] = $post->id; - /** @phpstan-ignore-next-line */ - $data['user_id'] = auth()->user()->id; + /** @phpstan-ignore-next-line */ + $data['user_id'] = $user->id; /** @phpstan-ignore-next-line */ Comment::create($data); diff --git a/app/Http/Controllers/Post/Like/StoreController.php b/app/Http/Controllers/Post/Like/StoreController.php index c2cebac5..c9204f2c 100644 --- a/app/Http/Controllers/Post/Like/StoreController.php +++ b/app/Http/Controllers/Post/Like/StoreController.php @@ -4,13 +4,14 @@ use App\Http\Controllers\Controller; use App\Models\Post; +use Illuminate\Contracts\Auth\Authenticatable; class StoreController extends Controller { - public function __invoke(Post $post) + public function __invoke(Post $post, Authenticatable $user) { /** @phpstan-ignore-next-line */ - auth()->user()->likedPosts()->toggle($post->id); + $user->likedPosts()->toggle($post->id); return redirect()->back(); } diff --git a/app/Http/Middleware/AdminMiddleware.php b/app/Http/Middleware/AdminMiddleware.php index dd14f7e1..5e7c1461 100644 --- a/app/Http/Middleware/AdminMiddleware.php +++ b/app/Http/Middleware/AdminMiddleware.php @@ -15,8 +15,9 @@ class AdminMiddleware */ public function handle(Request $request, Closure $next): Response { + $user = $request->user(); /** @phpstan-ignore-next-line */ - if (auth()->user()->isReader()) { + if (! $user || ! $user->isAdministrator()) { abort(404); } diff --git a/routes/web.php b/routes/web.php index fcdb03cf..1aeed1b9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -48,10 +48,10 @@ Route::prefix('post')->namespace('')->group(function () { Route::get('/{post}', [PostController::class, 'show'])->name('post.show'); - Route::prefix('{post}/comments')->group(function () { + Route::prefix('{post}/comments')->middleware('auth')->group(function () { Route::post('/', 'App\Http\Controllers\Post\Comment\StoreController')->name('post.comments.store'); }); - Route::prefix('{post}/likes')->group(function () { + Route::prefix('{post}/likes')->middleware('auth')->group(function () { Route::post('/', 'App\Http\Controllers\Post\Like\StoreController')->name('post.likes.store'); }); });