refactor: restrict action visibility to administrator and developer roles across cooperation and report modules

This commit is contained in:
Yoga Pangestu 2026-04-11 15:02:13 +07:00
parent 64f521adcc
commit fbb0f92b37
8 changed files with 13 additions and 14 deletions

View File

@ -7,10 +7,8 @@
use App\Enums\RoleEnum;
use App\Filament\Support\CheerfulNotification;
use App\Models\Cooperation;
use App\Models\User;
use Filament\Actions\Action;
use Filament\Support\Icons\Heroicon;
use Illuminate\Support\Facades\Auth;
class CompleteCooperationAction extends Action
{
@ -98,10 +96,7 @@ protected function setUp(): void
)->send();
})
->visible(function (Cooperation $record): bool {
/** @var User $user */
$user = Auth::user();
return $user && ! $user->hasRole(RoleEnum::PERUSAHAAN->value)
return auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value])
&& $record->status === CooperationStatus::PAYMENT;
});
}

View File

@ -54,6 +54,6 @@ protected function setUp(): void
]));
}
})
->visible(fn (CooperationProposal $record): bool => ! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING);
->visible(fn (CooperationProposal $record): bool => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]) && $record->status === ApprovalStatus::PENDING);
}
}

View File

@ -63,7 +63,7 @@ protected function setUp(): void
]));
}
})
->visible(fn (CooperationProposal $record): bool => ! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING)
->visible(fn (CooperationProposal $record): bool => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]) && $record->status === ApprovalStatus::PENDING)
->modalWidth(Width::Large);
}
}

View File

@ -51,7 +51,7 @@ protected function setUp(): void
})
->visible(
fn (Report $record): bool => $record->mediaTaskAssignment?->taskAssignment?->cooperation?->status === CooperationStatus::ASSIGNMENT &&
! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) &&
auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]) &&
$record->status === ApprovalStatus::PENDING
);
}

View File

@ -2,6 +2,7 @@
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
use App\Enums\RoleEnum;
use App\Settings\GeneralSettings;
use Barryvdh\DomPDF\Facade\Pdf;
use Filament\Actions\Action;
@ -54,6 +55,7 @@ protected function setUp(): void
])
)->output();
}, 'rekap-bukti-tayang.pdf');
});
})
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]));
}
}

View File

@ -2,6 +2,7 @@
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
use App\Enums\RoleEnum;
use App\Models\Report;
use App\Settings\GeneralSettings;
use Barryvdh\DomPDF\Facade\Pdf;
@ -53,6 +54,7 @@ protected function setUp(): void
])
)->output();
}, str($record->title)->slug().'.pdf');
});
})
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]));
}
}

View File

@ -63,7 +63,7 @@ protected function setUp(): void
})
->visible(
fn (Report $record): bool => $record->mediaTaskAssignment?->taskAssignment?->cooperation?->status === CooperationStatus::ASSIGNMENT &&
! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) &&
auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]) &&
$record->status === ApprovalStatus::PENDING
)
->modalWidth(Width::Large);

View File

@ -20,7 +20,7 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->visible(! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)),
->visible(auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value])),
ExportAction::make()
->exports([
@ -28,7 +28,7 @@ protected function getHeaderActions(): array
])
->color('success')
->icon(null)
->visible(! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)),
->visible(auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value])),
];
}
}