From 350fdd3520acc043d69cc29e4144c2ced81f18ff Mon Sep 17 00:00:00 2001 From: punkfairie Date: Sun, 23 Feb 2025 13:26:13 -0800 Subject: [PATCH] programs cont --- app/Http/Requests/ProgramRequest.php | 9 ++++++++- app/Policies/ProgramPolicy.php | 9 ++++++++- database/seeders/DatabaseSeeder.php | 14 +++++++++----- routes/web.php | 2 ++ 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/app/Http/Requests/ProgramRequest.php b/app/Http/Requests/ProgramRequest.php index b4f7201..4fadef5 100644 --- a/app/Http/Requests/ProgramRequest.php +++ b/app/Http/Requests/ProgramRequest.php @@ -2,6 +2,7 @@ namespace App\Http\Requests; +use App\Models\Program; use Illuminate\Foundation\Http\FormRequest; class ProgramRequest extends FormRequest @@ -18,6 +19,12 @@ public function rules(): array public function authorize(): bool { - return true; + if ($this->routeIs('programs.store')) { + return $this->user()->can('create', Program::class); + } elseif ($this->routeIs('programs.update')) { + return $this->user()->can('update', $this->route('program')); + } + + return false; } } diff --git a/app/Policies/ProgramPolicy.php b/app/Policies/ProgramPolicy.php index 1c9f76b..9511f62 100644 --- a/app/Policies/ProgramPolicy.php +++ b/app/Policies/ProgramPolicy.php @@ -5,6 +5,7 @@ use App\Models\Program; use App\Models\User; use Illuminate\Auth\Access\HandlesAuthorization; +use Illuminate\Support\Facades\Auth; class ProgramPolicy { @@ -12,30 +13,36 @@ class ProgramPolicy public function viewAny(User $user): bool { - + return true; } public function view(User $user, Program $program): bool { + return true; } public function create(User $user): bool { + return Auth::check(); } public function update(User $user, Program $program): bool { + return Auth::check(); } public function delete(User $user, Program $program): bool { + return Auth::check(); } public function restore(User $user, Program $program): bool { + return Auth::check(); } public function forceDelete(User $user, Program $program): bool { + return Auth::check(); } } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 144dd36..dd8bb17 100755 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -24,11 +24,15 @@ public function run(): void 'password' => 'password', ]); - Category::factory(20)->create(); - Category::factory(10)->trashed()->create(); + Category::factory(20) + ->has(Program::factory()->count(3)) + ->has(Program::factory()->trashed()->count(1)) + ->create(); - $categories = Category::all(); - Program::factory(40)->recycle($categories)->create(); - Program::factory(20)->recycle($categories)->trashed()->create(); + Category::factory(10) + ->has(Program::factory()->count(1)) + ->has(Program::factory()->trashed()->count(1)) + ->trashed() + ->create(); } } diff --git a/routes/web.php b/routes/web.php index c59939c..cd2e4c0 100755 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use App\Http\Controllers\CategoryController; use App\Http\Controllers\ProfileController; +use App\Http\Controllers\ProgramController; use Illuminate\Support\Facades\Route; Route::get('/', function () { @@ -25,4 +26,5 @@ Route::resources([ 'categories' => CategoryController::class, + 'programs' => ProgramController::class ]);