permissions refactoring

This commit is contained in:
2026-04-12 19:21:04 +02:00
parent 51014395a2
commit 9dcdfb981a
64 changed files with 1842 additions and 656 deletions
+25 -19
View File
@@ -2,7 +2,8 @@
namespace Database\Seeders;
use App\Actions\ProjectPermissions\ProjectPermissionService;
use App\Enums\Permission;
use App\Models\PermissionAssignment;
use App\Models\Project;
use App\Models\Team;
use App\Models\User;
@@ -15,28 +16,33 @@ class ProjectAccessSeeder extends Seeder
*/
public function run(): void
{
$projectPermissionService = app(ProjectPermissionService::class);
$projects = Project::query()->get();
$admins = User::query()
->where('is_admin', true)
->get();
foreach ($admins as $admin) {
foreach ($projects as $project) {
$projectPermissionService->grantAllProjectPermissions($project, $admin);
}
}
$coreProject = Project::query()->where('key', 'CORE')->first();
$deliveryTeam = Team::query()->where('name', 'Delivery Team')->first();
$platformTeam = Team::query()->where('name', 'Platform Team')->first();
$testUser = User::query()->where('email', 'test@example.com')->first();
if ($coreProject !== null && $platformTeam !== null) {
$projectPermissionService->syncTeamPermissions($coreProject, $platformTeam, [
'create',
'edit',
'view',
]);
PermissionAssignment::factory()
->forAssignee($platformTeam)
->forScope($coreProject)
->projectWrite()
->create();
}
if ($platformTeam !== null && $testUser !== null) {
PermissionAssignment::factory()
->forAssignee($testUser)
->forScope($platformTeam)
->teamManage()
->create();
}
if ($deliveryTeam !== null && $testUser !== null) {
PermissionAssignment::factory()
->forAssignee($testUser)
->forScope($deliveryTeam)
->permission(Permission::TeamInvite)
->create();
}
}
}