Update Role fasilitator, kordinator

This commit is contained in:
2026-11-04 14:24:51 +07:00
parent b5b046ed86
commit 41da3a71ee
48 changed files with 586 additions and 164 deletions
@@ -18,7 +18,7 @@ class PengurusBumdesController extends Controller
{
public function index(Request $request)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -36,7 +36,7 @@ class PengurusBumdesController extends Controller
});
}
if (auth()->user()->role->value === 'fasilitator') {
if (auth()->user()->role->value === 'enumerator') {
$query->where('created_by', auth()->id());
}
@@ -64,7 +64,7 @@ class PengurusBumdesController extends Controller
public function create()
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -77,7 +77,7 @@ class PengurusBumdesController extends Controller
public function store(Request $request)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -100,7 +100,7 @@ class PengurusBumdesController extends Controller
public function edit(string $id)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -116,7 +116,7 @@ class PengurusBumdesController extends Controller
public function update(Request $request, string $id)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -133,7 +133,7 @@ class PengurusBumdesController extends Controller
public function destroy(string $id)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -146,7 +146,7 @@ class PengurusBumdesController extends Controller
public function kelembagaanAktor(string $id)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -166,7 +166,7 @@ class PengurusBumdesController extends Controller
public function storeKelembagaanAktor(Request $request, string $id)
{
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (! Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -191,7 +191,7 @@ class PengurusBumdesController extends Controller
{
$query = PengurusBumdes::query();
if (auth()->user()->role->value === 'fasilitator') {
if (auth()->user()->role->value === 'enumerator') {
$query->where('created_by', auth()->id());
}
@@ -17,7 +17,7 @@ class DemografiPetaniController extends Controller
{
public function index(Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -28,7 +28,7 @@ class DemografiPetaniController extends Controller
public function karakteristik(Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -94,7 +94,7 @@ class IndeksPetaniController extends Controller
public function index(Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -15,7 +15,7 @@ class InternationalMarketController extends Controller
{
public function __invoke()
{
abort_unless(Gate::allows('super_admin') || Gate::allows('admin') || Gate::allows('fasilitator'), 403);
abort_unless(Gate::allows('super_admin') || Gate::allows('admin') || Gate::allows('koordinator') || Gate::allows('enumerator'), 403);
// File cache keeps external quotes independent of the application database.
$cache = Cache::store('file');
@@ -17,7 +17,7 @@ class ProfilPetaniController extends Controller
{
public function index()
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
$title = 'Dashboard Profil Petani';
@@ -37,7 +37,7 @@ class SummaryController extends Controller
public function produktivitas(Request $request)
{
if (!Gate::allows('super_admin') && !Gate::allows('admin') && !Gate::allows('fasilitator')) {
if (!Gate::allows('super_admin') && !Gate::allows('admin') && !Gate::allows('koordinator') && !Gate::allows('enumerator')) {
abort(403);
}
@@ -59,7 +59,7 @@ class SummaryController extends Controller
public function mapInformation(Request $request)
{
if (!Gate::allows('super_admin') && !Gate::allows('admin') && !Gate::allows('fasilitator')) {
if (!Gate::allows('super_admin') && !Gate::allows('admin') && !Gate::allows('koordinator') && !Gate::allows('enumerator')) {
abort(403);
}
@@ -101,7 +101,7 @@ class SummaryController extends Controller
public function pasar(Request $request)
{
if (!Gate::allows('super_admin') && !Gate::allows('admin') && !Gate::allows('fasilitator')) {
if (!Gate::allows('super_admin') && !Gate::allows('admin') && !Gate::allows('koordinator') && !Gate::allows('enumerator')) {
abort(403);
}
@@ -31,7 +31,7 @@ class SurveyPetaniController extends Controller
// Progres per enumerator
$enumerators = User::query()
->where('role', 'fasilitator')
->where('role', 'enumerator')
->withCount([
'petaniDibuat as done',
])
@@ -24,7 +24,7 @@ class PetaniCPMController extends Controller
{
public function index(Request $request): View
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -60,7 +60,7 @@ class PetaniCPMController extends Controller
public function create(Request $request): View
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -94,7 +94,7 @@ class PetaniCPMController extends Controller
*/
public function store(Request $request): RedirectResponse
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -147,7 +147,7 @@ class PetaniCPMController extends Controller
*/
public function show(string $id): View
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -161,7 +161,7 @@ class PetaniCPMController extends Controller
*/
public function edit(Request $request, string $id): View
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -198,7 +198,7 @@ class PetaniCPMController extends Controller
*/
public function update(Request $request, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -251,7 +251,7 @@ class PetaniCPMController extends Controller
*/
public function destroy(string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -34,7 +34,7 @@ class ValueBasisDataController extends Controller
public function index(Request $request, string $tabelId): View
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
@@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers\Web\Konfigurasi;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* Mengatur komoditas yang ditangani seorang koordinator.
*/
class KoordinatorKomoditasController extends Controller
{
public function update(Request $request, User $user)
{
abort_unless(Gate::any(['super_admin', 'admin']), 403);
if (! $user->isKoordinator()) {
return response()->json([
'success' => false,
'message' => 'Komoditas hanya bisa diatur untuk user dengan role Koordinator.',
], 422);
}
$validated = $request->validate([
'komoditas_ids' => ['required', 'array', 'min:1'],
'komoditas_ids.*' => ['integer', 'exists:master_komoditas,id'],
], [
'komoditas_ids.required' => 'Pilih minimal satu komoditas.',
'komoditas_ids.min' => 'Pilih minimal satu komoditas.',
'komoditas_ids.*.exists' => 'Komoditas yang dipilih tidak valid.',
]);
self::simpanPenugasan($user, $validated['komoditas_ids']);
return response()->json([
'success' => true,
'message' => 'Komoditas koordinator berhasil diperbarui.',
'data' => $user->komoditasKoordinatorIds(),
]);
}
/**
* Menyamakan penugasan koordinator dengan daftar komoditas yang dipilih.
* Penugasan yang dilepas di-soft delete, penugasan baru dibuat.
*/
public static function simpanPenugasan(User $user, array $komoditasIds): void
{
$komoditasIds = array_values(array_unique(array_map('intval', $komoditasIds)));
DB::transaction(function () use ($user, $komoditasIds) {
$user->koordinatorKomoditas()
->whereNotIn('komoditas_id', $komoditasIds)
->get()
->each->delete();
$sudahAda = $user->komoditasKoordinatorIds();
foreach (array_diff($komoditasIds, $sudahAda) as $komoditasId) {
$user->koordinatorKomoditas()->create([
'komoditas_id' => $komoditasId,
'created_by' => auth()->id(),
'updated_by' => auth()->id(),
]);
}
});
}
}
@@ -8,16 +8,29 @@ use App\Models\User;
use App\Models\Profile;
use App\Enums\Role;
use App\Models\Wilayah\Provinsi;
use App\Models\Pertanian\Komoditas;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
class UserController extends Controller
{
// Manajemen pengguna hanya untuk super admin & admin (sama dengan menu "Daftar Pengguna").
// Berlaku untuk semua method di controller ini.
public function __construct()
{
$this->middleware(function (Request $request, \Closure $next) {
abort_unless($request->user() && Gate::forUser($request->user())->any(['super_admin', 'admin']), 403);
return $next($request);
});
}
public function index(Request $request)
{
$query = User::orderBy('created_at', 'desc');
$query = User::with('koordinatorKomoditas.komoditas:id,nama')->orderBy('created_at', 'desc');
$tab = $request->get('tab', 'active');
if ($tab === 'pending') {
@@ -45,8 +58,15 @@ class UserController extends Controller
$pendingUsers = User::whereNull('email_verified_at')->count();
$roles = Role::cases();
$komoditasOptions = $this->komoditasOptions();
return view('konfigurasi.user.index', compact('users', 'totalUsers', 'activeUsers', 'pendingUsers', 'roles', 'tab'));
return view('konfigurasi.user.index', compact('users', 'totalUsers', 'activeUsers', 'pendingUsers', 'roles', 'tab', 'komoditasOptions'));
}
// Komoditas utama yang bisa ditugaskan ke koordinator
private function komoditasOptions()
{
return Komoditas::select('id', 'nama')->where('is_utama', true)->orderBy('nama')->get();
}
public function verify(Request $request, $id)
@@ -92,8 +112,9 @@ class UserController extends Controller
{
$roles = Role::cases();
$provinsi = Provinsi::orderBy('nama', 'asc')->get();
$komoditasOptions = $this->komoditasOptions();
return view('konfigurasi.user.add', compact('roles', 'provinsi'));
return view('konfigurasi.user.add', compact('roles', 'provinsi', 'komoditasOptions'));
}
public function store(Request $request)
@@ -104,6 +125,8 @@ class UserController extends Controller
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'role' => ['required', 'string'],
'komoditas_ids' => ['nullable', 'array', 'required_if:role,' . Role::KOORDINATOR->value],
'komoditas_ids.*' => ['integer', 'exists:master_komoditas,id'],
'telepon' => ['required', 'max:13'],
'desa_kelurahan_id' => ['nullable', 'exists:desa_kelurahan,id'],
'ktp' => ['nullable', 'min:16', 'max:16'],
@@ -116,6 +139,7 @@ class UserController extends Controller
'password.confirmed' => 'Konfirmasi password tidak cocok!',
'password.min' => 'Password minimal 8 karakter!',
'email.unique' => 'Email sudah terdaftar.',
'komoditas_ids.required_if' => 'Pilih minimal satu komoditas untuk koordinator.',
'required' => 'Kolom :attribute wajib diisi.'
]);
@@ -163,6 +187,10 @@ class UserController extends Controller
'created_by' => auth()->id(),
'updated_by' => auth()->id(),
]);
if ($user->isKoordinator()) {
KoordinatorKomoditasController::simpanPenugasan($user, $request->input('komoditas_ids', []));
}
});
if ($request->expectsJson()) {
@@ -27,7 +27,7 @@ class AsetKelompokTaniController extends Controller
private function authorizeAccess(): void
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
}
@@ -16,7 +16,7 @@ class BantuanKelompokTaniController extends Controller
{
private function authorizeAccess(): void
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
}
@@ -17,7 +17,7 @@ class PendidikanPelatihanController extends Controller
{
private function authorizeAccess(): void
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
}
@@ -14,7 +14,7 @@ class PengurusKelompokTaniController extends Controller
{
private function authorizeAccess(): void
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
}
@@ -32,13 +32,13 @@ class PetaniController extends Controller
*/
public function index(Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
$provinsi = Provinsi::select('id', 'kode', 'nama')->orderBy('kode', 'asc')->get();
$userRole = auth()->user()->role->value;
$showFasilitatorColumn = in_array($userRole, ['super_admin', 'admin'], true);
$showFasilitatorColumn = in_array($userRole, ['super_admin', 'admin', 'koordinator'], true);
$defaultKabupaten = KabupatenKota::select('id', 'nama')
->whereRaw('lower(nama) like ?', ['%ngada%'])
->orderBy('nama')
@@ -102,10 +102,19 @@ class PetaniController extends Controller
$query->where('desa_kelurahan_id', $request->desa_kelurahan_id);
}
if ($userRole === 'fasilitator') {
if ($userRole === 'enumerator') {
$query->where('created_by', auth()->user()->id);
}
// Koordinator hanya melihat petani dengan komoditas yang ditugaskan
$komoditasKoordinatorIds = $userRole === 'koordinator'
? auth()->user()->komoditasKoordinatorIds()
: null;
if ($komoditasKoordinatorIds !== null) {
$query->whereIn('komoditas_id', $komoditasKoordinatorIds);
}
$totalPetani = (clone $query)->count();
$totalPetaniLakiLaki = (clone $query)->where('jenis_kelamin', 1)->count();
$totalPetaniPerempuan = (clone $query)->where('jenis_kelamin', 0)->count();
@@ -165,10 +174,15 @@ class PetaniController extends Controller
->orWhereRaw('lower(ktp) like ?', ["%{$search}%"]);
});
})
->when($userRole === 'fasilitator', function ($query) {
->when($userRole === 'enumerator', function ($query) {
$query->whereHas('petani', function ($petani) {
$petani->where('created_by', auth()->id());
});
})
->when($komoditasKoordinatorIds !== null, function ($query) use ($komoditasKoordinatorIds) {
$query->whereHas('petani', function ($petani) use ($komoditasKoordinatorIds) {
$petani->whereIn('komoditas_id', $komoditasKoordinatorIds);
});
});
$totalLahan = (clone $lahanSummaryQuery)->count();
@@ -216,7 +230,7 @@ class PetaniController extends Controller
public function create()
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -288,7 +302,7 @@ class PetaniController extends Controller
public function store(Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -320,7 +334,7 @@ class PetaniController extends Controller
public function show(string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -332,7 +346,7 @@ class PetaniController extends Controller
public function edit(string $id, Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -353,7 +367,7 @@ class PetaniController extends Controller
public function update(Request $request, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -395,14 +409,14 @@ class PetaniController extends Controller
public function destroy(string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
return response()->json(['message' => 'Anda tidak memiliki akses.'], 403);
}
try {
$petani = Petani::findOrFail($id);
if (auth()->user()->role->value === 'fasilitator' && $petani->created_by !== auth()->id()) {
if (auth()->user()->role->value === 'enumerator' && $petani->created_by !== auth()->id()) {
return response()->json(['message' => 'Anda tidak memiliki akses.'], 403);
}
@@ -429,7 +443,7 @@ class PetaniController extends Controller
public function showImage(string $id, string $field)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -32,7 +32,7 @@ class PetaniLahanController extends Controller
{
public function index($petaniId, Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -52,7 +52,7 @@ class PetaniLahanController extends Controller
public function create($petaniId)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -194,7 +194,7 @@ class PetaniLahanController extends Controller
public function store($petaniId, Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -292,7 +292,7 @@ class PetaniLahanController extends Controller
public function show(string $petaniId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -310,7 +310,7 @@ class PetaniLahanController extends Controller
public function edit(string $petaniId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -335,7 +335,7 @@ class PetaniLahanController extends Controller
public function update(Request $request, string $petaniId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -462,7 +462,7 @@ class PetaniLahanController extends Controller
public function destroy(string $petaniId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -481,7 +481,7 @@ class PetaniLahanController extends Controller
public function summary(string $petaniId)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -42,7 +42,7 @@ class PetaniLahanTanamanController extends Controller
*/
public function show(string $petaniId, string $lahanId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -63,7 +63,7 @@ class PetaniLahanTanamanController extends Controller
public function update(Request $request, string $petaniId, string $lahanId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -103,7 +103,7 @@ class PetaniLahanTanamanController extends Controller
*/
public function destroy(string $petaniId, string $lahanId, string $id)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -42,7 +42,7 @@ class PraktikBudidayaController extends Controller
{
public function index($petaniId, Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -139,7 +139,7 @@ class PraktikBudidayaController extends Controller
public function store($petaniId, Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -247,7 +247,7 @@ class PraktikBudidayaController extends Controller
public function edit($petaniId, $praktikBudidayaId)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -340,7 +340,7 @@ class PraktikBudidayaController extends Controller
public function update($petaniId, $praktikBudidayaId, Request $request)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -16,7 +16,7 @@ class SkorPetaniController extends Controller
*/
public function index(string $petaniId)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'koordinator', 'enumerator'])) {
abort(403);
}
@@ -19,7 +19,7 @@ class SurveyKelompokTaniController extends Controller
{
private function authorizeAccess(): void
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
if (!Gate::any(['super_admin', 'admin', 'enumerator'])) {
abort(403);
}
}