49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Enums\Permission;
|
|
use App\Models\PermissionAssignment;
|
|
use App\Models\Project;
|
|
use App\Models\Team;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class ProjectAccessSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$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) {
|
|
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();
|
|
}
|
|
}
|
|
}
|