Gate specialty modules by staff role with view and refer levels.
Deploy Ladill Care / deploy (push) Successful in 37s

Give nurses, lab techs, pharmacists, and GPs broad access to day-to-day modules, keep restricted specialties for specialists (with support nurses), and let GPs view results or refer without full clinical edit.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-18 18:03:47 +00:00
co-authored by Cursor
parent 7989ab9184
commit 2cff8fdd6c
13 changed files with 762 additions and 89 deletions
@@ -27,6 +27,12 @@ class EmergencyWorkspaceController extends Controller
abort_unless($modules->memberCanAccess($organization, $this->member($request), 'emergency'), 403);
}
protected function assertEmergencyManage(Request $request, SpecialtyModuleService $modules): void
{
$organization = $this->organization($request);
abort_unless($modules->memberCanManage($organization, $this->member($request), 'emergency'), 403);
}
protected function assertVisit(Request $request, Visit $visit): void
{
abort_unless($visit->organization_id === $this->organization($request)->id, 404);
@@ -40,7 +46,7 @@ class EmergencyWorkspaceController extends Controller
SpecialtyVisitStageService $stages,
): RedirectResponse {
$this->authorizeAbility($request, 'consultations.manage');
$this->assertEmergencyAccess($request, $modules);
$this->assertEmergencyManage($request, $modules);
$this->assertVisit($request, $visit);
$validated = $request->validate([
@@ -72,7 +78,7 @@ class EmergencyWorkspaceController extends Controller
EmergencyVitalsService $vitals,
): RedirectResponse {
$this->authorizeAbility($request, 'consultations.manage');
$this->assertEmergencyAccess($request, $modules);
$this->assertEmergencyManage($request, $modules);
$this->assertVisit($request, $visit);
$validated = $request->validate([
@@ -112,7 +118,7 @@ class EmergencyWorkspaceController extends Controller
EmergencyWorkflowService $workflow,
): RedirectResponse {
$this->authorizeAbility($request, 'consultations.manage');
$this->assertEmergencyAccess($request, $modules);
$this->assertEmergencyManage($request, $modules);
$this->assertVisit($request, $visit);
$organization = $this->organization($request);