chore: add authorization UI and middleware to page and route

This commit is contained in:
myuqinurrohman 2025-03-06 13:48:33 +07:00
parent 6ba34134ca
commit ecd2b64e38
6 changed files with 190 additions and 118 deletions

View File

@ -11,6 +11,7 @@
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">{{$title}}</h3>
</div><!-- .nk-block-head-content -->
@if (is_role(['1']))
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
@ -33,6 +34,7 @@
</div>
</div>
</div><!-- .nk-block-head-content -->
@endif
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">

View File

@ -11,6 +11,7 @@
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">{{$title}}</h3>
</div><!-- .nk-block-head-content -->
@if (is_role(['1']))
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
@ -33,6 +34,7 @@
</div>
</div>
</div><!-- .nk-block-head-content -->
@endif
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">

View File

@ -11,6 +11,7 @@
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">{{$title}}</h3>
</div><!-- .nk-block-head-content -->
@if (is_role(['1']))
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
@ -33,6 +34,7 @@
</div>
</div>
</div><!-- .nk-block-head-content -->
@endif
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">

View File

@ -11,6 +11,7 @@
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">{{$title}}</h3>
</div><!-- .nk-block-head-content -->
@if (is_role(['1']))
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
@ -33,6 +34,7 @@
</div>
</div>
</div><!-- .nk-block-head-content -->
@endif
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">

View File

@ -30,6 +30,16 @@
<span class="nk-menu-text">Ikhtisar</span>
</a>
</li><!-- .nk-menu-item -->
@if (is_role([3]))
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-bell"></em></span>
<span class="nk-menu-text">Ajakan Kerjasama</span>
<span class="nk-menu-badge bg-info text-white">10</span>
</a>
</li><!-- .nk-menu-item -->
@endif
@if (is_role('1'))
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Master</h6>
</li><!-- .nk-menu-item -->
@ -63,6 +73,8 @@
<span class="nk-menu-text">OPD</span>
</a>
</li><!-- .nk-menu-item -->
@endif
@if (is_role(['1']))
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Kelola</h6>
</li><!-- .nk-menu-item -->
@ -90,6 +102,7 @@
<span class="nk-menu-text">Pengaturan Aplikasi</span>
</a>
</li><!-- .nk-menu-item -->
@endif
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Data</h6>
</li><!-- .nk-menu-item -->
@ -112,7 +125,7 @@
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Kerjasama Eksternal</h6>
<h6 class="overline-title text-primary-alt">Kerjasama {{is_role(['1']) ? 'Eksternal' : ''}}</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
@ -144,15 +157,19 @@
<span class="nk-menu-text">Arsip</span>
</a>
</li><!-- .nk-menu-item -->
@if (is_role(['1', '2', '4']))
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Monitoring</h6>
</li><!-- .nk-menu-item -->
@if (is_role(['1', '4']))
<li class="nk-menu-item">
<a href="{{route('dashboard.content.recaps.index')}}" class="nk-menu-link {{$page === 'content_recaps' ? 'active-page' : ''}}">
<span class="nk-menu-icon"><em class="icon ni ni-list-check"></em></span>
<span class="nk-menu-text">Rekap Konten</span>
</a>
</li><!-- .nk-menu-item -->
@endif
@if (is_role(['1', '2']))
<li class="nk-menu-item">
<a href="{{route('dashboard.media.monitoring.index')}}" class="nk-menu-link {{$page === 'media_monitorings' ? 'active-page' : ''}}">
<span class="nk-menu-icon"><em class="icon ni ni-layers"></em></span>
@ -165,6 +182,9 @@
<span class="nk-menu-text">Manajemen Isu</span>
</a>
</li><!-- .nk-menu-item -->
@endif
@endif
@if (is_role(['1']))
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Autentikasi</h6>
</li><!-- .nk-menu-item -->
@ -180,6 +200,7 @@
<span class="nk-menu-text">Role</span>
</a>
</li><!-- .nk-menu-item -->
@endif
</ul><!-- .nk-menu -->
</div><!-- .nk-sidebar-menu -->
</div><!-- .nk-sidebar-content -->

View File

@ -48,12 +48,15 @@
Route::prefix('classifications')->name('classifications.')->group(function(){
Route::controller(ClassificationController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'classification'])->name('data');
@ -62,12 +65,15 @@
Route::prefix('sub-classifications')->name('sub.classifications.')->group(function(){
Route::controller(SubClassificationController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'subClassification'])->name('data');
@ -76,12 +82,15 @@
Route::prefix('locations')->name('locations.')->group(function(){
Route::controller(LocationController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'location'])->name('data');
@ -90,12 +99,15 @@
Route::prefix('sub-locations')->name('sub.locations.')->group(function(){
Route::controller(SubLocationController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'subLocation'])->name('data');
@ -104,12 +116,15 @@
Route::prefix('government-agencies')->name('government.agencies.')->group(function(){
Route::controller(GovernmentAgencyController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'governmentAgency'])->name('data');
@ -118,80 +133,98 @@
Route::prefix('news')->name('news.')->group(function(){
Route::controller(NewsController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'news'])->name('data');
});
Route::prefix('settings')->name('settings.')->group(function(){
Route::controller(SettingController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::put('/', 'update')->name('update');
Route::middleware('role:1')->group(function(){
Route::prefix('settings')->name('settings.')->group(function(){
Route::controller(SettingController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::put('/', 'update')->name('update');
});
});
});
Route::prefix('airing-proof-themes')->name('airing.proof.themes.')->group(function(){
Route::controller(AiringProofThemeController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1')->group(function(){
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
});
Route::get('/data', [DatatableController::class, 'airingProofTheme'])->name('data');
});
Route::prefix('companies')->name('companies.')->group(function(){
Route::controller(CompanyController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::middleware('role:1,3')->group(function(){
Route::prefix('companies')->name('companies.')->group(function(){
Route::controller(CompanyController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::get('/data', [DatatableController::class, 'company'])->name('data');
Route::get('/data', [DatatableController::class, 'company'])->name('data');
});
});
Route::prefix('media')->name('media.')->group(function(){
Route::controller(MediaController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::middleware('role:1,3')->group(function(){
Route::prefix('media')->name('media.')->group(function(){
Route::controller(MediaController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/data', [DatatableController::class, 'media'])->name('data');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::get('/data', [DatatableController::class, 'media'])->name('data');
});
});
Route::prefix('journalists')->name('journalists.')->group(function(){
Route::controller(JournalistController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::middleware('role:1,3')->group(function(){
Route::prefix('journalists')->name('journalists.')->group(function(){
Route::controller(JournalistController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/data', [DatatableController::class, 'journalist'])->name('data');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::get('/data', [DatatableController::class, 'journalist'])->name('data');
});
});
Route::middleware('role:1,4')->group(function(){});
Route::prefix('content-recaps')->name('content.recaps.')->group(function(){
Route::controller(ContentRecapController::class)->group(function(){
Route::get('/', 'index')->name('index');
@ -206,62 +239,72 @@
Route::get('/data', [DatatableController::class, 'contentRecap'])->name('data');
});
Route::prefix('media-monitorings')->name('media.monitoring.')->group(function(){
Route::controller(MediaMonitoringController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::post('/check-link', 'checkLink')->name('check.link');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::middleware('role:1,2')->group(function(){
Route::prefix('media-monitorings')->name('media.monitoring.')->group(function(){
Route::controller(MediaMonitoringController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::post('/check-link', 'checkLink')->name('check.link');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::get('/data', [DatatableController::class, 'mediaMonitoring'])->name('data');
Route::get('/data', [DatatableController::class, 'mediaMonitoring'])->name('data');
});
});
Route::prefix('issue-managements')->name('issue.managements.')->group(function(){
Route::controller(IssueManagementController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/{media_monitoring_id}', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::middleware('role:1,2')->group(function(){
Route::prefix('issue-managements')->name('issue.managements.')->group(function(){
Route::controller(IssueManagementController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/{media_monitoring_id}', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
// AJAX
Route::get('/get-sub-locations/{location_id}', 'getSubLocations')->name('get.sub.locations');
Route::get('/get-sub-classifications/{classification_id}', 'getSubClassifications')->name('get.sub.classifications');
// AJAX
Route::get('/get-sub-locations/{location_id}', 'getSubLocations')->name('get.sub.locations');
Route::get('/get-sub-classifications/{classification_id}', 'getSubClassifications')->name('get.sub.classifications');
});
Route::get('/data', [DatatableController::class, 'issueManagement'])->name('data');
});
Route::get('/data', [DatatableController::class, 'issueManagement'])->name('data');
});
Route::prefix('users')->name('users.')->group(function(){
Route::controller(UserController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::get('/{id}/reset', 'resetPassword')->name('reset.password');
Route::post('/{id}/reset', 'resetPasswordAction')->name('reset.password.action');
Route::put('/{id}/{action}/status', 'statusAction')->name('status.action');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::middleware('role:1')->group(function(){
Route::prefix('users')->name('users.')->group(function(){
Route::controller(UserController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::get('/{id}/reset', 'resetPassword')->name('reset.password');
Route::post('/{id}/reset', 'resetPasswordAction')->name('reset.password.action');
Route::put('/{id}/{action}/status', 'statusAction')->name('status.action');
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::get('/data', [DatatableController::class, 'user'])->name('data');
Route::get('/data', [DatatableController::class, 'user'])->name('data');
});
});
Route::prefix('roles')->name('role.')->group(function(){
Route::controller(RoleController::class)->group(function(){
Route::get('/', 'index')->name('index');
});
Route::middleware('role:1')->group(function(){
Route::prefix('roles')->name('role.')->group(function(){
Route::controller(RoleController::class)->group(function(){
Route::get('/', 'index')->name('index');
});
Route::get('/data', [DatatableController::class, 'role'])->name('data');
Route::get('/data', [DatatableController::class, 'role'])->name('data');
});
});
});
});