role enum
This commit is contained in:
parent
2cd9050247
commit
e85799b635
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\DAL\Studies;
|
namespace App\DAL\Studies;
|
||||||
|
|
||||||
use App\Models\Enums\UserRole;
|
use App\Models\Enums\Role;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
@ -17,11 +17,11 @@ public static function getLister(): IUserStudyLister
|
|||||||
$key = sprintf('user_role:%d', auth()->id());
|
$key = sprintf('user_role:%d', auth()->id());
|
||||||
$role = Cache::remember($key, now()->addMinutes(5), fn (): string => auth()->user()->roles()->first()->name);
|
$role = Cache::remember($key, now()->addMinutes(5), fn (): string => auth()->user()->roles()->first()->name);
|
||||||
|
|
||||||
return match (UserRole::from($role)) {
|
return match (Role::from($role)) {
|
||||||
UserRole::Admin => new AdminWorklist,
|
Role::Admin => new AdminWorklist,
|
||||||
UserRole::Technician => new TechnicianWorklist,
|
Role::Technician => new TechnicianWorklist,
|
||||||
UserRole::Radiologist => new RadiologistWorklist,
|
Role::Radiologist => new RadiologistWorklist,
|
||||||
UserRole::ReferringDoctor => new ReferrerWorklist,
|
Role::Clinician => new ReferrerWorklist,
|
||||||
default => throw new Exception("Unknown user role: {$role}"),
|
default => throw new Exception("Unknown user role: {$role}"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
use App\Http\Requests\AssignPhysicianRequest;
|
use App\Http\Requests\AssignPhysicianRequest;
|
||||||
use App\Models\Enums\Permission;
|
use App\Models\Enums\Permission;
|
||||||
use App\Models\Enums\ReportStatus;
|
use App\Models\Enums\ReportStatus;
|
||||||
use App\Models\Enums\UserRole;
|
use App\Models\Enums\Role;
|
||||||
use App\Models\Study;
|
use App\Models\Study;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Services\AuditTrail\Activity;
|
use App\Services\AuditTrail\Activity;
|
||||||
@ -20,7 +20,7 @@ public function show()
|
|||||||
abort_unless(auth()->user()->may(Permission::AssignPhysician), 403);
|
abort_unless(auth()->user()->may(Permission::AssignPhysician), 403);
|
||||||
$this->decodeKeys();
|
$this->decodeKeys();
|
||||||
$study = Study::with('assignedPhysician')->findOrFail($this->key);
|
$study = Study::with('assignedPhysician')->findOrFail($this->key);
|
||||||
$rads = User::active()->role(UserRole::Radiologist)->get(['id', 'display_name', 'profile_photo_path', 'first_name', 'last_name', 'created_at']);
|
$rads = User::active()->role(Role::Radiologist)->get(['id', 'display_name', 'profile_photo_path', 'first_name', 'last_name', 'created_at']);
|
||||||
$stats = Radiologists::worklist_stats(3, ReportStatus::Finalized->value);
|
$stats = Radiologists::worklist_stats(3, ReportStatus::Finalized->value);
|
||||||
foreach ($stats as $rad) {
|
foreach ($stats as $rad) {
|
||||||
$found = $rads->where('id', $rad->id)->first();
|
$found = $rads->where('id', $rad->id)->first();
|
||||||
|
@ -2,15 +2,17 @@
|
|||||||
|
|
||||||
namespace App\Models\Enums;
|
namespace App\Models\Enums;
|
||||||
|
|
||||||
enum UserRole: string
|
enum Role: string
|
||||||
{
|
{
|
||||||
case Guest = 'guest';
|
case Guest = 'guest';
|
||||||
case Patient = 'patient';
|
case Patient = 'patient';
|
||||||
case ReferringDoctor = 'referring_doctor';
|
case Clinician = 'clinician';
|
||||||
case Technician = 'technician';
|
case Technician = 'technician';
|
||||||
case Radiologist = 'radiologist';
|
case Radiologist = 'radiologist';
|
||||||
case Associate = 'associate';
|
case Associate = 'associate';
|
||||||
case SystemAgent = 'system_agent';
|
case SystemAgent = 'system_agent';
|
||||||
case SiteAdmin = 'site_admin';
|
case SiteAdmin = 'site_admin';
|
||||||
|
case Clerk = 'clerk';
|
||||||
|
case Transcriptionist = 'transcriptionist';
|
||||||
case Admin = 'admin';
|
case Admin = 'admin';
|
||||||
}
|
}
|
@ -3,7 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Models\Enums\Permission;
|
use App\Models\Enums\Permission;
|
||||||
use App\Models\Enums\UserRole;
|
use App\Models\Enums\Role;
|
||||||
use App\Models\Traits\HashableId;
|
use App\Models\Traits\HashableId;
|
||||||
use App\Services\UserService;
|
use App\Services\UserService;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
@ -86,7 +86,7 @@ public function isAdmin(): bool
|
|||||||
{
|
{
|
||||||
return cache()->remember('user.is_admin:' . $this->id,
|
return cache()->remember('user.is_admin:' . $this->id,
|
||||||
5 * 60,
|
5 * 60,
|
||||||
fn () => $this->hasRole(UserRole::Admin)
|
fn () => $this->hasRole(Role::Admin)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ public function isTech(): bool
|
|||||||
{
|
{
|
||||||
return cache()->remember('user.is_tech:' . $this->id,
|
return cache()->remember('user.is_tech:' . $this->id,
|
||||||
5 * 60,
|
5 * 60,
|
||||||
fn () => $this->hasRole(UserRole::Technician)
|
fn () => $this->hasRole(Role::Technician)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use App\Models\Enums\Permission;
|
use App\Models\Enums\Permission;
|
||||||
use App\Models\Enums\UserRole;
|
use App\Models\Enums\Role;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Spatie\Permission\Models\Permission as SpatiePermission;
|
use Spatie\Permission\Models\Permission as SpatiePermission;
|
||||||
use Spatie\Permission\Models\Role as SpatieRole;
|
use Spatie\Permission\Models\Role as SpatieRole;
|
||||||
@ -12,13 +12,13 @@ class RoleSeeder extends Seeder
|
|||||||
{
|
{
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
foreach (UserRole::cases() as $role) {
|
foreach (Role::cases() as $role) {
|
||||||
SpatieRole::create(['name' => $role->value]);
|
SpatieRole::create(['name' => $role->value]);
|
||||||
}
|
}
|
||||||
$adm = SpatieRole::findByName(UserRole::Admin->value);
|
$adm = SpatieRole::findByName(Role::Admin->value);
|
||||||
$rad = SpatieRole::findByName(UserRole::Radiologist->value);
|
$rad = SpatieRole::findByName(Role::Radiologist->value);
|
||||||
$tech = SpatieRole::findByName(UserRole::Technician->value);
|
$tech = SpatieRole::findByName(Role::Technician->value);
|
||||||
$guest = SpatieRole::findByName(UserRole::Guest->value);
|
$guest = SpatieRole::findByName(Role::Guest->value);
|
||||||
|
|
||||||
foreach (Permission::cases() as $perm) {
|
foreach (Permission::cases() as $perm) {
|
||||||
SpatiePermission::create(['name' => $perm->value]);
|
SpatiePermission::create(['name' => $perm->value]);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use App\Models\Enums\UserRole;
|
use App\Models\Enums\Role;
|
||||||
use App\Models\Institute;
|
use App\Models\Institute;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
@ -20,7 +20,7 @@ public function run(): void
|
|||||||
'password' => bcrypt(fake()->password(20)),
|
'password' => bcrypt(fake()->password(20)),
|
||||||
'is_active' => false,
|
'is_active' => false,
|
||||||
]);
|
]);
|
||||||
$usr->assignRole(UserRole::SystemAgent);
|
$usr->assignRole(Role::SystemAgent);
|
||||||
|
|
||||||
$usr = User::factory()->create([
|
$usr = User::factory()->create([
|
||||||
'first_name' => 'Administrator',
|
'first_name' => 'Administrator',
|
||||||
@ -30,7 +30,7 @@ public function run(): void
|
|||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
'phone' => '+8801733938582',
|
'phone' => '+8801733938582',
|
||||||
]);
|
]);
|
||||||
$usr->assignRole(UserRole::Admin);
|
$usr->assignRole(Role::Admin);
|
||||||
|
|
||||||
$chevron = Institute::where('name', 'Chevron')->first();
|
$chevron = Institute::where('name', 'Chevron')->first();
|
||||||
$cmch = Institute::where('name', 'CMCH')->first();
|
$cmch = Institute::where('name', 'CMCH')->first();
|
||||||
@ -39,23 +39,23 @@ public function run(): void
|
|||||||
'institute_id' => $chevron->id,
|
'institute_id' => $chevron->id,
|
||||||
])
|
])
|
||||||
->each(function ($u) {
|
->each(function ($u) {
|
||||||
$u->assignRole(UserRole::Technician);
|
$u->assignRole(Role::Technician);
|
||||||
});
|
});
|
||||||
User::factory(2)->create([
|
User::factory(2)->create([
|
||||||
'institute_id' => $cmch->id,
|
'institute_id' => $cmch->id,
|
||||||
])
|
])
|
||||||
->each(function ($u) {
|
->each(function ($u) {
|
||||||
$u->assignRole(UserRole::Technician);
|
$u->assignRole(Role::Technician);
|
||||||
});
|
});
|
||||||
|
|
||||||
User::factory(8)->create()
|
User::factory(8)->create()
|
||||||
->each(function ($u) {
|
->each(function ($u) {
|
||||||
$u->assignRole(UserRole::Radiologist);
|
$u->assignRole(Role::Radiologist);
|
||||||
});
|
});
|
||||||
|
|
||||||
User::factory(3)->create()
|
User::factory(3)->create()
|
||||||
->each(function ($u) {
|
->each(function ($u) {
|
||||||
$u->assignRole(UserRole::Guest);
|
$u->assignRole(Role::Guest);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user