diff --git a/app/Models/Enums/Permission.php b/app/Models/Enums/Permission.php new file mode 100644 index 0000000..a5e2270 --- /dev/null +++ b/app/Models/Enums/Permission.php @@ -0,0 +1,18 @@ +call([ + RoleSeeder::class, InstituteSeeder::class, UserSeeder::class, ]); diff --git a/database/seeders/RoleSeeder.php b/database/seeders/RoleSeeder.php new file mode 100644 index 0000000..d39ad11 --- /dev/null +++ b/database/seeders/RoleSeeder.php @@ -0,0 +1,44 @@ + UserRole::Admin->name]); + $rad = SpatieRole::create(['name' => UserRole::Radiologist->name]); + $tech = SpatieRole::create(['name' => UserRole::Technician->name]); + $guest = SpatieRole::create(['name' => UserRole::Guest->name]); + + foreach (Permission::cases() as $perm) { + SpatiePermission::create(['name' => $perm->value]); + } + + $rad->givePermissionTo([ + Permission::ReportCreate, + Permission::StudyDownload, + Permission::StudyMetadataView, + Permission::StudyNotesCreate, + Permission::StudyNotesView, + Permission::AttachmentDownload, + ]); + + $tech->givePermissionTo([ + Permission::StudyDownload, + Permission::StudyMetadataView, + Permission::StudyMetadataEdit, + Permission::StudyNotesCreate, + Permission::StudyNotesView, + Permission::AttachmentUpload, + Permission::AttachmentDownload, + Permission::StudyArchive, + ]); + } +}