From 9dc58f9f920345e27974142168d52826458763af Mon Sep 17 00:00:00 2001 From: Dr Masroor Ehsan Date: Tue, 31 Dec 2024 21:58:21 +0600 Subject: [PATCH] WIP RBAC --- app/Models/Enums/Permission.php | 18 ++++++++++++ database/seeders/DatabaseSeeder.php | 1 + database/seeders/RoleSeeder.php | 44 +++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 app/Models/Enums/Permission.php create mode 100644 database/seeders/RoleSeeder.php 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, + ]); + } +}