authorizeAdmin(); return Inertia::render('Admin/JobPositions/Index', [ 'jobPositions' => JobPosition::all() ]); } public function store(Request $request) { $this->authorizeAdmin(); $request->validate([ 'title' => 'required|string|max:255', 'description' => 'required|string', 'requirements' => 'nullable|array', ]); JobPosition::create([ 'title' => $request->title, 'description' => $request->description, 'requirements' => $request->requirements, ]); return back()->with('success', 'Fiche de poste créée avec succès.'); } public function update(Request $request, JobPosition $jobPosition) { $this->authorizeAdmin(); $request->validate([ 'title' => 'required|string|max:255', 'description' => 'required|string', 'requirements' => 'nullable|array', ]); $jobPosition->update([ 'title' => $request->title, 'description' => $request->description, 'requirements' => $request->requirements, ]); return back()->with('success', 'Fiche de poste mise à jour.'); } public function destroy(JobPosition $jobPosition) { $this->authorizeAdmin(); $jobPosition->delete(); return back()->with('success', 'Fiche de poste supprimée.'); } private function authorizeAdmin() { if (!auth()->user()->isAdmin()) { abort(403); } } }