diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniController.php b/app/Http/Controllers/Web/Produktivitas/PetaniController.php index 99ce51a..cfec8e9 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniController.php @@ -268,7 +268,27 @@ class PetaniController extends Controller */ public function destroy(string $id) { - // + if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { + abort(403); + } + + $petani = Petani::findOrFail($id); + + if (auth()->user()->role->value === 'fasilitator' && $petani->created_by !== auth()->id()) { + abort(403); + } + + DB::transaction(function () use ($petani) { + $petani->update([ + 'deleted_by' => auth()->id(), + ]); + + $petani->delete(); + }); + + return response()->json([ + 'message' => 'Data petani berhasil dihapus.', + ]); } public function showImage(string $id, string $field)