refactor: restrict action visibility to administrator and developer roles across cooperation and report modules
This commit is contained in:
parent
64f521adcc
commit
fbb0f92b37
@ -7,10 +7,8 @@
|
|||||||
use App\Enums\RoleEnum;
|
use App\Enums\RoleEnum;
|
||||||
use App\Filament\Support\CheerfulNotification;
|
use App\Filament\Support\CheerfulNotification;
|
||||||
use App\Models\Cooperation;
|
use App\Models\Cooperation;
|
||||||
use App\Models\User;
|
|
||||||
use Filament\Actions\Action;
|
use Filament\Actions\Action;
|
||||||
use Filament\Support\Icons\Heroicon;
|
use Filament\Support\Icons\Heroicon;
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
|
|
||||||
class CompleteCooperationAction extends Action
|
class CompleteCooperationAction extends Action
|
||||||
{
|
{
|
||||||
@ -98,10 +96,7 @@ protected function setUp(): void
|
|||||||
)->send();
|
)->send();
|
||||||
})
|
})
|
||||||
->visible(function (Cooperation $record): bool {
|
->visible(function (Cooperation $record): bool {
|
||||||
/** @var User $user */
|
return auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value])
|
||||||
$user = Auth::user();
|
|
||||||
|
|
||||||
return $user && ! $user->hasRole(RoleEnum::PERUSAHAAN->value)
|
|
||||||
&& $record->status === CooperationStatus::PAYMENT;
|
&& $record->status === CooperationStatus::PAYMENT;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
->modalWidth(Width::Large);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,7 +51,7 @@ protected function setUp(): void
|
|||||||
})
|
})
|
||||||
->visible(
|
->visible(
|
||||||
fn (Report $record): bool => $record->mediaTaskAssignment?->taskAssignment?->cooperation?->status === CooperationStatus::ASSIGNMENT &&
|
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
|
$record->status === ApprovalStatus::PENDING
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
|
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
|
||||||
|
|
||||||
|
use App\Enums\RoleEnum;
|
||||||
use App\Settings\GeneralSettings;
|
use App\Settings\GeneralSettings;
|
||||||
use Barryvdh\DomPDF\Facade\Pdf;
|
use Barryvdh\DomPDF\Facade\Pdf;
|
||||||
use Filament\Actions\Action;
|
use Filament\Actions\Action;
|
||||||
@ -54,6 +55,7 @@ protected function setUp(): void
|
|||||||
])
|
])
|
||||||
)->output();
|
)->output();
|
||||||
}, 'rekap-bukti-tayang.pdf');
|
}, 'rekap-bukti-tayang.pdf');
|
||||||
});
|
})
|
||||||
|
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
|
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
|
||||||
|
|
||||||
|
use App\Enums\RoleEnum;
|
||||||
use App\Models\Report;
|
use App\Models\Report;
|
||||||
use App\Settings\GeneralSettings;
|
use App\Settings\GeneralSettings;
|
||||||
use Barryvdh\DomPDF\Facade\Pdf;
|
use Barryvdh\DomPDF\Facade\Pdf;
|
||||||
@ -53,6 +54,7 @@ protected function setUp(): void
|
|||||||
])
|
])
|
||||||
)->output();
|
)->output();
|
||||||
}, str($record->title)->slug().'.pdf');
|
}, str($record->title)->slug().'.pdf');
|
||||||
});
|
})
|
||||||
|
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,7 +63,7 @@ protected function setUp(): void
|
|||||||
})
|
})
|
||||||
->visible(
|
->visible(
|
||||||
fn (Report $record): bool => $record->mediaTaskAssignment?->taskAssignment?->cooperation?->status === CooperationStatus::ASSIGNMENT &&
|
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
|
$record->status === ApprovalStatus::PENDING
|
||||||
)
|
)
|
||||||
->modalWidth(Width::Large);
|
->modalWidth(Width::Large);
|
||||||
|
|||||||
@ -20,7 +20,7 @@ protected function getHeaderActions(): array
|
|||||||
return [
|
return [
|
||||||
CreateAction::make()
|
CreateAction::make()
|
||||||
->label('Tambah')
|
->label('Tambah')
|
||||||
->visible(! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)),
|
->visible(auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value])),
|
||||||
|
|
||||||
ExportAction::make()
|
ExportAction::make()
|
||||||
->exports([
|
->exports([
|
||||||
@ -28,7 +28,7 @@ protected function getHeaderActions(): array
|
|||||||
])
|
])
|
||||||
->color('success')
|
->color('success')
|
||||||
->icon(null)
|
->icon(null)
|
||||||
->visible(! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)),
|
->visible(auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value])),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user