62 lines
1.9 KiB
PHP
62 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Enums\Permission;
|
|
use App\Models\Enums\UserRole;
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission as SpatiePermission;
|
|
use Spatie\Permission\Models\Role as SpatieRole;
|
|
|
|
class RoleSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
foreach (UserRole::cases() as $role) {
|
|
SpatieRole::create(['name' => $role->value]);
|
|
}
|
|
$adm = SpatieRole::findByName(UserRole::Admin->value);
|
|
$rad = SpatieRole::findByName(UserRole::Radiologist->value);
|
|
$tech = SpatieRole::findByName(UserRole::Technician->value);
|
|
$guest = SpatieRole::findByName(UserRole::Guest->value);
|
|
|
|
foreach (Permission::cases() as $perm) {
|
|
SpatiePermission::create(['name' => $perm->value]);
|
|
}
|
|
|
|
$rad->givePermissionTo([
|
|
Permission::ReportCreate,
|
|
Permission::ReportDownload,
|
|
Permission::StudyDownload,
|
|
Permission::StudyMetadataView,
|
|
Permission::StudyHistoryView,
|
|
Permission::StudyNotesCreate,
|
|
Permission::StudyNotesView,
|
|
Permission::AttachmentDownload,
|
|
]);
|
|
|
|
$tech->givePermissionTo([
|
|
Permission::StudyDownload,
|
|
Permission::StudyMetadataView,
|
|
Permission::StudyMetadataEdit,
|
|
Permission::StudyHistoryView,
|
|
Permission::StudyHistoryEdit,
|
|
Permission::StudyNotesCreate,
|
|
Permission::StudyNotesView,
|
|
Permission::AttachmentUpload,
|
|
Permission::AttachmentDownload,
|
|
Permission::StudyArchive,
|
|
Permission::ReportDownload,
|
|
]);
|
|
|
|
$adm->givePermissionTo(SpatiePermission::all());
|
|
|
|
$guest->givePermissionTo([
|
|
Permission::StudyMetadataView,
|
|
Permission::StudyNotesView,
|
|
Permission::StudyDownload,
|
|
Permission::ReportDownload,
|
|
]);
|
|
}
|
|
}
|