diff --git a/app/Http/Controllers/PostController.php b/app/Http/Controllers/PostController.php index ee8d045..b259eea 100644 --- a/app/Http/Controllers/PostController.php +++ b/app/Http/Controllers/PostController.php @@ -7,6 +7,7 @@ use App\Models\User; use Illuminate\Http\Request; use Illuminate\Routing\Controllers\Middleware; use Illuminate\Routing\Controllers\HasMiddleware; +use Illuminate\Support\Facades\Gate; class PostController extends Controller implements HasMiddleware { @@ -60,6 +61,11 @@ class PostController extends Controller implements HasMiddleware public function destroy(Post $post) { - dd("Deleting ", $post->id); + $response = Gate::inspect("delete", $post); + + if ($response->allowed()) + $post->delete(); + + return redirect()->route('posts.index', auth()->user()->username); } } diff --git a/app/Policies/PostPolicy.php b/app/Policies/PostPolicy.php new file mode 100644 index 0000000..f30cba5 --- /dev/null +++ b/app/Policies/PostPolicy.php @@ -0,0 +1,18 @@ +id === $post->user_id; + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 452e6b6..7a9287e 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,9 @@ namespace App\Providers; +use App\Models\Post; +use App\Policies\PostPolicy; +use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider @@ -19,6 +22,6 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - // + Gate::policy(Post::class, PostPolicy::class); } }