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
+30 -23
View File
@@ -3,7 +3,6 @@
use Illuminate\Support\Facades\Route;
//Auth
Route::put('/users/{id}/verify', [App\Http\Controllers\Web\Konfigurasi\UserController::class, 'verify'])->name('users.verify');
Route::get('/login', [App\Http\Controllers\Web\Konfigurasi\AuthController::class, 'login'])->name('login');
Route::get('/register', [App\Http\Controllers\Web\Konfigurasi\AuthController::class, 'register'])->name('register');
Route::post('/create-account', [App\Http\Controllers\Web\Konfigurasi\AuthController::class, 'createAccount'])->name('auth.createAccount');
@@ -17,10 +16,15 @@ Route::get('/', function() {
return redirect()->route('login');
}
if (auth()->user()->role->value === 'fasilitator') {
if (auth()->user()->role->value === 'enumerator') {
return redirect()->route('dashboard.survey-petani');
}
// Fasilitator (pemateri workshop) belum punya menu khusus
if (auth()->user()->role->value === 'fasilitator') {
return redirect()->route('userProfile.index');
}
return redirect()->route('dashboard.karakteristik-petani');
})->name('home');
@@ -82,7 +86,8 @@ Route::middleware('auth')
// User
Route::resource('users', App\Http\Controllers\Web\Konfigurasi\UserController::class);
Route::patch('/users/{user}/verify', [App\Http\Controllers\Web\Konfigurasi\UserController::class, 'verify'])->name('users.verify');
Route::put('/users/{user}/verify', [App\Http\Controllers\Web\Konfigurasi\UserController::class, 'verify'])->name('users.verify');
Route::singleton('users.komoditas', App\Http\Controllers\Web\Konfigurasi\KoordinatorKomoditasController::class)->only(['update']);
// Provinsi
Route::get('/provinsi/list', [App\Http\Controllers\Web\Master\ProvinsiController::class, 'list'])->name('provinsi.list');
@@ -220,30 +225,32 @@ Route::middleware('auth')
Route::resource('realisasi', App\Http\Controllers\Web\Program\RealisasiController::class)->only('index', 'store', 'show', 'update', 'destroy');
Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'destroy');
Route::get('petani/show-image/{id}/{field}', [App\Http\Controllers\Web\Produktivitas\PetaniController::class, 'showImage'])->name('petani.show-image');
// Petani (dibatasi per role & komoditas koordinator, lihat BatasiAksesPetani)
Route::middleware('akses.petani')->group(function () {
Route::get('petani/show-image/{id}/{field}', [App\Http\Controllers\Web\Produktivitas\PetaniController::class, 'showImage'])->name('petani.show-image');
// Petani
Route::resource('petani', App\Http\Controllers\Web\Produktivitas\PetaniController::class)->whereNumber('petani');
Route::get('petani/{petani}/akses-pasar', [App\Http\Controllers\Web\Produktivitas\AksesPasarController::class, 'editByPetani'])->name('petani.akses-pasar.edit');
Route::get('petani/{petani}/lahan-tanaman/summary', [App\Http\Controllers\Web\Produktivitas\PetaniLahanController::class, 'summary'])->name('petani.lahan-tanaman.summary');
Route::resource('petani.lahan-tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanController::class)->whereNumber('petani');
Route::resource('petani.lahan-tanaman.tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanTanamanController::class)->only(['show', 'update', 'destroy'])->whereNumber('petani');
Route::resource('petani.praktik-budidaya', App\Http\Controllers\Web\Produktivitas\PraktikBudidayaController::class)->whereNumber('petani');
Route::resource('petani.survey-produktivitas', App\Http\Controllers\Web\Produktivitas\SurveyProduktivitasController::class)->only(['store', 'destroy']);
Route::resource('petani', App\Http\Controllers\Web\Produktivitas\PetaniController::class)->whereNumber('petani');
Route::get('petani/{petani}/akses-pasar', [App\Http\Controllers\Web\Produktivitas\AksesPasarController::class, 'editByPetani'])->name('petani.akses-pasar.edit');
Route::get('petani/{petani}/lahan-tanaman/summary', [App\Http\Controllers\Web\Produktivitas\PetaniLahanController::class, 'summary'])->name('petani.lahan-tanaman.summary');
Route::resource('petani.lahan-tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanController::class)->whereNumber('petani');
Route::resource('petani.lahan-tanaman.tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanTanamanController::class)->only(['show', 'update', 'destroy'])->whereNumber('petani');
Route::resource('petani.praktik-budidaya', App\Http\Controllers\Web\Produktivitas\PraktikBudidayaController::class)->whereNumber('petani');
Route::resource('petani.survey-produktivitas', App\Http\Controllers\Web\Produktivitas\SurveyProduktivitasController::class)->only(['store', 'destroy']);
Route::prefix('petani/{petani}/pendidikan-pelatihan')->name('petani.pendidikan-pelatihan.')->group(function () {
Route::get('/', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'index'])->name('index');
Route::post('/pelatihan', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'storePelatihan'])->name('pelatihan.store');
Route::delete('/pelatihan/{surveyPelatihan}', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'destroyPelatihan'])->name('pelatihan.destroy');
Route::post('/sertifikasi', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'storeSertifikasi'])->name('sertifikasi.store');
Route::delete('/sertifikasi/{surveySertifikasi}', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'destroySertifikasi'])->name('sertifikasi.destroy');
Route::prefix('petani/{petani}/pendidikan-pelatihan')->name('petani.pendidikan-pelatihan.')->group(function () {
Route::get('/', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'index'])->name('index');
Route::post('/pelatihan', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'storePelatihan'])->name('pelatihan.store');
Route::delete('/pelatihan/{surveyPelatihan}', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'destroyPelatihan'])->name('pelatihan.destroy');
Route::post('/sertifikasi', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'storeSertifikasi'])->name('sertifikasi.store');
Route::delete('/sertifikasi/{surveySertifikasi}', [App\Http\Controllers\Web\Produktivitas\PendidikanPelatihanController::class, 'destroySertifikasi'])->name('sertifikasi.destroy');
});
Route::resource('petani.sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class)->whereNumber('petani');
Route::resource('petani.akses-pasar', App\Http\Controllers\Web\Produktivitas\AksesPasarController::class)->whereNumber('petani');
Route::resource('petani.skor', App\Http\Controllers\Web\Produktivitas\SkorPetaniController::class)->only(['index']);
});
Route::resource('petani.sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class)->whereNumber('petani');
Route::resource('petani.akses-pasar', App\Http\Controllers\Web\Produktivitas\AksesPasarController::class)->whereNumber('petani');
Route::resource('petani.skor', App\Http\Controllers\Web\Produktivitas\SkorPetaniController::class)->only(['index']);
Route::resource('survey/kelompok-tani', App\Http\Controllers\Web\Produktivitas\SurveyKelompokTaniController::class)->except(['show'])->names('kelompok-tani')->parameters(['kelompok-tani' => 'kelompokTani']);
Route::prefix('survey/kelompok-tani/{kelompokTani}')->name('kelompok-tani.')->group(function () {
Route::resource('pengurus-anggota', App\Http\Controllers\Web\Produktivitas\PengurusKelompokTaniController::class)->only(['index', 'store', 'destroy'])->parameters(['pengurus-anggota' => 'pengurus']);