feat: financial admin role authorize

This commit is contained in:
myqnrrhmn 2025-06-30 08:11:42 +07:00
parent c67fabcbe3
commit 5b65ffce0a
8 changed files with 14 additions and 11 deletions

View File

@ -196,7 +196,6 @@ function is_file_exists($path)
return File::exists(public_path('storage/' . $path)); return File::exists(public_path('storage/' . $path));
} }
} }
// }
if (!function_exists('get_role_name')) { if (!function_exists('get_role_name')) {
function get_role_name($role = null) { function get_role_name($role = null) {
@ -214,6 +213,8 @@ function get_role_name($role = null) {
return "Perusahaan"; return "Perusahaan";
case '4': case '4':
return "Admin Konten"; return "Admin Konten";
case '5':
return "Admin Keuangan";
default: default:
return "Role Tidak Dikenal"; return "Role Tidak Dikenal";
} }

View File

@ -22,7 +22,7 @@
class CompanyController extends Controller class CompanyController extends Controller
{ {
public function index(Request $request){ public function index(Request $request){
if(is_role(['1'])){ if(is_role(['1', '5'])){
return view('dashboard.companies.admin.index',[ return view('dashboard.companies.admin.index',[
'title' => 'Data Perusahaan', 'title' => 'Data Perusahaan',
'status' => $request->input('status', null), 'status' => $request->input('status', null),

View File

@ -17,7 +17,7 @@
class JournalistController extends Controller class JournalistController extends Controller
{ {
public function index(Request $request){ public function index(Request $request){
if(is_role(['1'])){ if(is_role(['1', '5'])){
if($request->has('media_ids') && $request->input('media_ids') && count($request->input('media_ids')) > 10){ if($request->has('media_ids') && $request->input('media_ids') && count($request->input('media_ids')) > 10){
return redirect()->back()->with('failed-status', 'Hanya bisa memfilter 10 media'); return redirect()->back()->with('failed-status', 'Hanya bisa memfilter 10 media');

View File

@ -18,7 +18,7 @@
class MediaController extends Controller class MediaController extends Controller
{ {
public function index(Request $request){ public function index(Request $request){
if(is_role(['1'])){ if(is_role(['1', '5'])){
return view('dashboard.media.admin.index',[ return view('dashboard.media.admin.index',[
'title' => 'Data Media', 'title' => 'Data Media',
'type' => $request->input('type', null), 'type' => $request->input('type', null),

View File

@ -26,7 +26,7 @@ public function rules(): array
{ {
$rules = [ $rules = [
'name' => ['required', 'max:100'], 'name' => ['required', 'max:100'],
'role_id' => ['required', 'in:1,2,3,4', 'not_in:select'], 'role_id' => ['required', 'in:1,2,3,4,5', 'not_in:select'],
'status' => ['required', 'in:1,2', 'not_in:select'], 'status' => ['required', 'in:1,2', 'not_in:select'],
]; ];
@ -65,7 +65,7 @@ public function messages()
'email.max' => 'Email tidak boleh lebih dari 100 karakter.', 'email.max' => 'Email tidak boleh lebih dari 100 karakter.',
'role_id.required' => 'Role wajib dipilih.', 'role_id.required' => 'Role wajib dipilih.',
'role_id.in' => 'Role harus salah satu dari: Admin, Admin Monitoring, atau Admin Konten.', 'role_id.in' => 'Role harus salah satu dari: Admin, Admin Monitoring, Admin Konten, atau Admin Keuangan.',
'status.required' => 'Status wajib dipilih.', 'status.required' => 'Status wajib dipilih.',
'status.in' => 'Status harus salah satu dari: Aktif, atau Nonaktif.', 'status.in' => 'Status harus salah satu dari: Aktif, atau Nonaktif.',

View File

@ -18,6 +18,7 @@ public function run(): void
['name' => "Admin Monitoring", 'description' => null], ['name' => "Admin Monitoring", 'description' => null],
['name' => "Perusahaan", 'description' => null], ['name' => "Perusahaan", 'description' => null],
['name' => "Admin Konten", 'description' => null], ['name' => "Admin Konten", 'description' => null],
['name' => "Admin Keuangan", 'description' => null],
]); ]);
} }
} }

View File

@ -1317,12 +1317,13 @@
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false }, { data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
{ data: 'name', name: 'name' }, { data: 'name', name: 'name' },
{ data: 'account_count', name: 'account_count' }, { data: 'account_count', name: 'account_count' },
{ data: 'created_at', name: 'created_at' },
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false }, { data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
], ],
language: datatableLanguage, language: datatableLanguage,
responsive: true, responsive: true,
autoWidth: false, autoWidth: false,
order: [[1, 'desc']], order: [[3, 'desc']],
pagingType: "simple", pagingType: "simple",
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']], lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
scrollX: true scrollX: true

View File

@ -73,7 +73,7 @@
}); });
}); });
Route::middleware(['auth', 'role:1,2,3,4', 'announcement'])->group(function(){ Route::middleware(['auth', 'role:1,2,3,4,5', 'announcement'])->group(function(){
Route::prefix('dashboard')->name('dashboard.')->group(function(){ Route::prefix('dashboard')->name('dashboard.')->group(function(){
Route::controller(OverviewController::class)->group(function(){ Route::controller(OverviewController::class)->group(function(){
Route::get('/overview', 'index')->name('overview'); Route::get('/overview', 'index')->name('overview');
@ -272,7 +272,7 @@
}); });
}); });
Route::middleware('role:1,3')->group(function(){ Route::middleware('role:1,3,5')->group(function(){
Route::prefix('companies')->name('companies.')->group(function(){ Route::prefix('companies')->name('companies.')->group(function(){
Route::controller(CompanyController::class)->group(function(){ Route::controller(CompanyController::class)->group(function(){
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
@ -299,7 +299,7 @@
}); });
}); });
Route::middleware('role:1,3')->group(function(){ Route::middleware('role:1,3,5')->group(function(){
Route::prefix('media')->name('media.')->group(function(){ Route::prefix('media')->name('media.')->group(function(){
Route::controller(MediaController::class)->group(function(){ Route::controller(MediaController::class)->group(function(){
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
@ -327,7 +327,7 @@
}); });
}); });
Route::middleware('role:1,3')->group(function(){ Route::middleware('role:1,3,5')->group(function(){
Route::prefix('journalists')->name('journalists.')->group(function(){ Route::prefix('journalists')->name('journalists.')->group(function(){
Route::controller(JournalistController::class)->group(function(){ Route::controller(JournalistController::class)->group(function(){
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');