| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace App\Services\Access;
- use App\Models\User;
- class FieldAccessService
- {
- public function __construct(private readonly AccessService $accessService)
- {
- }
- public function visibleHeaders(User $user, string $module, array $headers): array
- {
- return array_filter(
- $headers,
- fn (string $field): bool => $this->accessService->canViewField($user, $module, $this->normalizeField($field)),
- ARRAY_FILTER_USE_KEY
- );
- }
- public function filterValidatedPayload(User $user, string $module, array $validated): array
- {
- return $this->accessService->filterWritableData($user, $module, $validated);
- }
- public function filterExportColumns(User $user, string $module, array $columns): array
- {
- return $columns;
- }
- public function filterImportPayload(User $user, string $module, array $row): array
- {
- return $row;
- }
- private function normalizeField(string $field): string
- {
- return str_ends_with($field, '_txt')
- ? substr($field, 0, -4)
- : $field;
- }
- }
|