programs cont

This commit is contained in:
punkfairie 2025-02-23 13:26:13 -08:00
parent a3bebf3976
commit 350fdd3520
Signed by: punkfairie
GPG key ID: B3C5488E9A1A7CA6
4 changed files with 27 additions and 7 deletions

View file

@ -2,6 +2,7 @@
namespace App\Http\Requests; namespace App\Http\Requests;
use App\Models\Program;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ProgramRequest extends FormRequest class ProgramRequest extends FormRequest
@ -18,6 +19,12 @@ public function rules(): array
public function authorize(): bool 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;
} }
} }

View file

@ -5,6 +5,7 @@
use App\Models\Program; use App\Models\Program;
use App\Models\User; use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Support\Facades\Auth;
class ProgramPolicy class ProgramPolicy
{ {
@ -12,30 +13,36 @@ class ProgramPolicy
public function viewAny(User $user): bool public function viewAny(User $user): bool
{ {
return true;
} }
public function view(User $user, Program $program): bool public function view(User $user, Program $program): bool
{ {
return true;
} }
public function create(User $user): bool public function create(User $user): bool
{ {
return Auth::check();
} }
public function update(User $user, Program $program): bool public function update(User $user, Program $program): bool
{ {
return Auth::check();
} }
public function delete(User $user, Program $program): bool public function delete(User $user, Program $program): bool
{ {
return Auth::check();
} }
public function restore(User $user, Program $program): bool public function restore(User $user, Program $program): bool
{ {
return Auth::check();
} }
public function forceDelete(User $user, Program $program): bool public function forceDelete(User $user, Program $program): bool
{ {
return Auth::check();
} }
} }

View file

@ -24,11 +24,15 @@ public function run(): void
'password' => 'password', 'password' => 'password',
]); ]);
Category::factory(20)->create(); Category::factory(20)
Category::factory(10)->trashed()->create(); ->has(Program::factory()->count(3))
->has(Program::factory()->trashed()->count(1))
->create();
$categories = Category::all(); Category::factory(10)
Program::factory(40)->recycle($categories)->create(); ->has(Program::factory()->count(1))
Program::factory(20)->recycle($categories)->trashed()->create(); ->has(Program::factory()->trashed()->count(1))
->trashed()
->create();
} }
} }

View file

@ -2,6 +2,7 @@
use App\Http\Controllers\CategoryController; use App\Http\Controllers\CategoryController;
use App\Http\Controllers\ProfileController; use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ProgramController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/', function () { Route::get('/', function () {
@ -25,4 +26,5 @@
Route::resources([ Route::resources([
'categories' => CategoryController::class, 'categories' => CategoryController::class,
'programs' => ProgramController::class
]); ]);