From 1987b4856bdbcbc55f836c830c83c367c5613fb8 Mon Sep 17 00:00:00 2001 From: DevSoftTech Server Date: Tue, 7 Apr 2026 04:33:50 +0530 Subject: [PATCH] Add ABDM and left-menu permission controls with route filters --- app/Config/AuthGroups.php | 30 +++++ app/Config/Routes.php | 127 +++++++++++---------- app/Views/partials/sidebar.php | 202 ++++++++++++++++++++++----------- 3 files changed, 234 insertions(+), 125 deletions(-) diff --git a/app/Config/AuthGroups.php b/app/Config/AuthGroups.php index a71d074..3340ccb 100644 --- a/app/Config/AuthGroups.php +++ b/app/Config/AuthGroups.php @@ -118,6 +118,12 @@ class AuthGroups extends ShieldAuthGroups 'billing.ipd.admission.edit' => 'Can edit IPD admission details (date, mode, department, refer, doctors, contact, clinical notes)', 'billing.ipd.bill.print' => 'Can print IPD bill variants', 'billing.ipd.discharge.edit' => 'Can edit IPD discharge process details (discount, extra charges, status, date, time)', + 'settings.bed_status.view' => 'Can view bed status and bed management screens', + 'settings.charges.access' => 'Can access charges settings', + 'reports.access' => 'Can access reports section', + 'reports.collection.view' => 'Can view collection reports', + 'reports.insurance_credit.view' => 'Can view insurance credit reports', + 'reports.nabh_audit.view' => 'Can view NABH audit report', 'finance.access' => 'Can access finance module', 'finance.vendor.manage' => 'Can manage finance vendors', 'finance.po.manage' => 'Can manage purchase orders', @@ -156,6 +162,9 @@ class AuthGroups extends ShieldAuthGroups 'hospital_stock.issue' => 'Can issue stock against approved indents', 'hospital_stock.purchase.manage' => 'Can create/receive purchase orders', 'hospital_stock.report.view' => 'Can view stock reports and alerts', + 'abdm.access' => 'Can access ABDM module', + 'abdm.taskboard.access' => 'Can access ABDM task board', + 'abdm.gateway.use' => 'Can run ABDM gateway actions from UI', ]; /** @@ -173,12 +182,19 @@ class AuthGroups extends ShieldAuthGroups 'beta.*', 'billing.*', 'opd.doctor-panel.access', + 'settings.bed_status.view', + 'settings.charges.access', + 'reports.access', + 'reports.collection.view', + 'reports.insurance_credit.view', + 'reports.nabh_audit.view', 'finance.*', 'diagnosis.*', 'doctor_work.*', 'pharmacy.*', 'template.*', 'hospital_stock.*', + 'abdm.*', ], 'admin' => [ 'admin.access', @@ -188,12 +204,19 @@ class AuthGroups extends ShieldAuthGroups 'beta.access', 'billing.*', 'opd.doctor-panel.access', + 'settings.bed_status.view', + 'settings.charges.access', + 'reports.access', + 'reports.collection.view', + 'reports.insurance_credit.view', + 'reports.nabh_audit.view', 'finance.*', 'diagnosis.*', 'doctor_work.*', 'pharmacy.*', 'template.*', 'hospital_stock.*', + 'abdm.*', ], 'developer' => [ 'admin.access', @@ -203,12 +226,19 @@ class AuthGroups extends ShieldAuthGroups 'beta.access', 'billing.*', 'opd.doctor-panel.access', + 'settings.bed_status.view', + 'settings.charges.access', + 'reports.access', + 'reports.collection.view', + 'reports.insurance_credit.view', + 'reports.nabh_audit.view', 'finance.*', 'diagnosis.*', 'doctor_work.*', 'pharmacy.*', 'template.*', 'hospital_stock.*', + 'abdm.*', ], 'stock_manager' => [ 'hospital_stock.access', diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f225792..2c0a847 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -509,20 +509,21 @@ $routes->match(['get', 'post'], 'Opd_prescription/create_opd_queue/(:num)', 'Opd $routes->get('Opd_prescription/opd_prescription_print/(:num)/(:num)', 'Opd_prescription::opd_prescription_print/$1/$2'); $routes->get('Opd_prescription/opd_prescription_print/(:num)/(:num)/(:num)', 'Opd_prescription::opd_prescription_print/$1/$2/$3'); $routes->post('Opd_prescription/opd_prescription_save', 'Opd_prescription::opd_prescription_save'); -$routes->post('AbdmGateway/abha_validate', 'AbdmGateway::abhaValidate'); -$routes->post('AbdmGateway/scan_share_lookup', 'AbdmGateway::scanShareLookup'); -$routes->post('AbdmGateway/consent_request', 'AbdmGateway::consentRequest'); +$abdmPermFilter = 'permission:abdm.access,abdm.taskboard.access,abdm.gateway.use'; +$routes->post('AbdmGateway/abha_validate', 'AbdmGateway::abhaValidate', ['filter' => $abdmPermFilter]); +$routes->post('AbdmGateway/scan_share_lookup', 'AbdmGateway::scanShareLookup', ['filter' => $abdmPermFilter]); +$routes->post('AbdmGateway/consent_request', 'AbdmGateway::consentRequest', ['filter' => $abdmPermFilter]); $routes->post('AbdmGateway/consent_callback', 'AbdmGateway::consentCallback'); -$routes->post('AbdmGateway/share_prescription_bundle', 'AbdmGateway::sharePrescriptionBundle'); -$routes->post('AbdmGateway/share_ipd_discharge_bundle', 'AbdmGateway::shareIpdDischargeBundle'); -$routes->post('AbdmGateway/share_diagnosis_report_bundle', 'AbdmGateway::shareDiagnosisReportBundle'); -$routes->post('AbdmGateway/nhcx_claim_create', 'AbdmGateway::nhcxClaimCreate'); -$routes->post('AbdmGateway/nhcx_claim_status_request', 'AbdmGateway::nhcxClaimStatusRequest'); +$routes->post('AbdmGateway/share_prescription_bundle', 'AbdmGateway::sharePrescriptionBundle', ['filter' => $abdmPermFilter]); +$routes->post('AbdmGateway/share_ipd_discharge_bundle', 'AbdmGateway::shareIpdDischargeBundle', ['filter' => $abdmPermFilter]); +$routes->post('AbdmGateway/share_diagnosis_report_bundle', 'AbdmGateway::shareDiagnosisReportBundle', ['filter' => $abdmPermFilter]); +$routes->post('AbdmGateway/nhcx_claim_create', 'AbdmGateway::nhcxClaimCreate', ['filter' => $abdmPermFilter]); +$routes->post('AbdmGateway/nhcx_claim_status_request', 'AbdmGateway::nhcxClaimStatusRequest', ['filter' => $abdmPermFilter]); $routes->post('AbdmGateway/nhcx_claim_status_callback', 'AbdmGateway::nhcxClaimStatusCallback'); -$routes->get('AbdmTaskBoard', 'AbdmTaskBoard::index'); -$routes->get('AbdmTaskBoard/list', 'AbdmTaskBoard::list'); -$routes->post('AbdmTaskBoard/perform_action', 'AbdmTaskBoard::performAction'); -$routes->post('AbdmTaskBoard/mark_status', 'AbdmTaskBoard::markStatus'); +$routes->get('AbdmTaskBoard', 'AbdmTaskBoard::index', ['filter' => $abdmPermFilter]); +$routes->get('AbdmTaskBoard/list', 'AbdmTaskBoard::list', ['filter' => $abdmPermFilter]); +$routes->post('AbdmTaskBoard/perform_action', 'AbdmTaskBoard::performAction', ['filter' => $abdmPermFilter]); +$routes->post('AbdmTaskBoard/mark_status', 'AbdmTaskBoard::markStatus', ['filter' => $abdmPermFilter]); $routes->get('Opd_prescription/fhir_bundle/(:num)', 'Opd_prescription::fhir_bundle/$1'); $routes->get('Opd_prescription/fhir_bundle/(:num)/(:num)', 'Opd_prescription::fhir_bundle/$1/$2'); $routes->get('Opd_prescription/fhir_bundle_history/(:num)', 'Opd_prescription::fhir_bundle_history/$1'); @@ -705,13 +706,14 @@ $routes->get('Report/index', 'Report::index'); $routes->get('report', 'Report::index'); $routes->get('report/index', 'Report::index'); -$routes->get('Report/collection_report', 'Report::collection_report'); -$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_app_show/$1/$2/$3'); -$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_app_show/$1/$2/$3/$4'); -$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_app_show/$1/$2/$3/$4'); -$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_app_show/$1/$2/$3/$4/$5'); -$routes->get('Report/report_total_payment_total_amount_show/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_total_amount_show/$1/$2/$3'); -$routes->get('Report/report_total_payment_total_amount_show/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_total_amount_show/$1/$2/$3/$4'); +$reportsCollectionFilter = 'permission:reports.collection.view,reports.access'; +$routes->get('Report/collection_report', 'Report::collection_report', ['filter' => $reportsCollectionFilter]); +$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_app_show/$1/$2/$3', ['filter' => $reportsCollectionFilter]); +$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_app_show/$1/$2/$3/$4', ['filter' => $reportsCollectionFilter]); +$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_app_show/$1/$2/$3/$4', ['filter' => $reportsCollectionFilter]); +$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_app_show/$1/$2/$3/$4/$5', ['filter' => $reportsCollectionFilter]); +$routes->get('Report/report_total_payment_total_amount_show/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_total_amount_show/$1/$2/$3', ['filter' => $reportsCollectionFilter]); +$routes->get('Report/report_total_payment_total_amount_show/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_total_amount_show/$1/$2/$3/$4', ['filter' => $reportsCollectionFilter]); $routes->get('Report/billing_operations_report', 'Report::billing_operations_report'); $routes->get('Report/billing_operations_report_data/(:segment)/(:segment)', 'Report::billing_operations_report_data/$1/$2'); @@ -732,27 +734,29 @@ $routes->get('Report/diagnosis_report_data/(:segment)/(:segment)', 'Report::diag $routes->get('Report/diagnosis_report_data/(:segment)/(:segment)/(:segment)', 'Report::diagnosis_report_data/$1/$2/$3'); $routes->get('Report/diagnosis_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::diagnosis_report_data/$1/$2/$3/$4'); -$routes->get('Report/nabh_audit_report', 'Report::nabh_audit_report'); -$routes->get('Report/nabh_audit_report_data/(:segment)/(:segment)/(:segment)', 'Report::nabh_audit_report_data/$1/$2/$3'); -$routes->get('Report/nabh_audit_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::nabh_audit_report_data/$1/$2/$3/$4'); +$reportsNabhFilter = 'permission:reports.nabh_audit.view,reports.access'; +$routes->get('Report/nabh_audit_report', 'Report::nabh_audit_report', ['filter' => $reportsNabhFilter]); +$routes->get('Report/nabh_audit_report_data/(:segment)/(:segment)/(:segment)', 'Report::nabh_audit_report_data/$1/$2/$3', ['filter' => $reportsNabhFilter]); +$routes->get('Report/nabh_audit_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::nabh_audit_report_data/$1/$2/$3/$4', ['filter' => $reportsNabhFilter]); // Insurance Credit Reports -$routes->get('Report/insurance_credit_main', 'Report::insurance_credit_main'); -$routes->get('Report/insurance_opd_report', 'Report::insurance_opd_report'); -$routes->get('Report/insurance_opd_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_opd_report_data/$1/$2/$3'); -$routes->get('Report/insurance_opd_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_opd_report_data/$1/$2/$3/$4'); -$routes->get('Report/insurance_ipd_report', 'Report::insurance_ipd_report'); -$routes->get('Report/insurance_ipd_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_ipd_report_data/$1/$2/$3'); -$routes->get('Report/insurance_ipd_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_ipd_report_data/$1/$2/$3/$4'); -$routes->get('Report/insurance_combined_report', 'Report::insurance_combined_report'); -$routes->get('Report/insurance_combined_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_combined_report_data/$1/$2/$3'); -$routes->get('Report/insurance_combined_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_combined_report_data/$1/$2/$3/$4'); -$routes->get('Report/ayushman_unmapped_report', 'Report::ayushman_unmapped_report'); -$routes->get('Report/ayushman_unmapped_report_data/(:segment)', 'Report::ayushman_unmapped_report_data/$1'); -$routes->get('Report/ayushman_unmapped_report_data/(:segment)/(:num)', 'Report::ayushman_unmapped_report_data/$1/$2'); -$routes->get('Report/ayushman_case_dashboard', 'Report::ayushman_case_dashboard'); -$routes->get('Report/ayushman_case_dashboard_data/(:segment)/(:segment)', 'Report::ayushman_case_dashboard_data/$1/$2'); -$routes->get('Report/ayushman_case_dashboard_data/(:segment)/(:segment)/(:num)', 'Report::ayushman_case_dashboard_data/$1/$2/$3'); +$reportsInsuranceFilter = 'permission:reports.insurance_credit.view,reports.access'; +$routes->get('Report/insurance_credit_main', 'Report::insurance_credit_main', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_opd_report', 'Report::insurance_opd_report', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_opd_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_opd_report_data/$1/$2/$3', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_opd_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_opd_report_data/$1/$2/$3/$4', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_ipd_report', 'Report::insurance_ipd_report', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_ipd_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_ipd_report_data/$1/$2/$3', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_ipd_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_ipd_report_data/$1/$2/$3/$4', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_combined_report', 'Report::insurance_combined_report', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_combined_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_combined_report_data/$1/$2/$3', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/insurance_combined_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_combined_report_data/$1/$2/$3/$4', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/ayushman_unmapped_report', 'Report::ayushman_unmapped_report', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/ayushman_unmapped_report_data/(:segment)', 'Report::ayushman_unmapped_report_data/$1', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/ayushman_unmapped_report_data/(:segment)/(:num)', 'Report::ayushman_unmapped_report_data/$1/$2', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/ayushman_case_dashboard', 'Report::ayushman_case_dashboard', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/ayushman_case_dashboard_data/(:segment)/(:segment)', 'Report::ayushman_case_dashboard_data/$1/$2', ['filter' => $reportsInsuranceFilter]); +$routes->get('Report/ayushman_case_dashboard_data/(:segment)/(:segment)/(:num)', 'Report::ayushman_case_dashboard_data/$1/$2/$3', ['filter' => $reportsInsuranceFilter]); // Legacy Report4 compatibility for Insurance Case reports $routes->get('Report4/echs_ipd_list_main', 'Report::echs_ipd_list_main'); @@ -896,7 +900,10 @@ $routes->get('OcasePathLap/invoice_print/(:num)', 'OcasePathLap::invoice_print/$ $routes->get('OcasePathLap/addPathTest/(:num)/(:num)', 'Billing\\CaseMaster::addPathTest/$1'); $routes->group('setting', static function($routes) { - $routes->get('admin', 'Setting\\Admin::index'); + $settingsAdminFilter = 'permission:admin.access,admin.settings'; + $settingsBedFilter = 'permission:settings.bed_status.view,admin.settings,admin.access'; + $settingsChargesFilter = 'permission:settings.charges.access,admin.settings,admin.access'; + $routes->get('admin', 'Setting\\Admin::index', ['filter' => $settingsAdminFilter]); $routes->get('admin/user-management', 'Setting\\UserManagement::index'); $routes->get('admin/user-management/new', 'Setting\\UserManagement::create'); $routes->post('admin/user-management/new', 'Setting\\UserManagement::store'); @@ -965,26 +972,26 @@ $routes->group('setting', static function($routes) { $routes->post('admin/reffer/types/create', 'Setting\\Reffer::storeType'); $routes->post('admin/reffer/types/update', 'Setting\\Reffer::updateType'); $routes->post('admin/reffer/types/delete', 'Setting\\Reffer::deleteType'); - $routes->get('admin/bed-management', 'Setting\\BedManagement::index'); - $routes->get('admin/departments', 'Setting\\BedManagement::departments'); - $routes->post('admin/departments/save', 'Setting\\BedManagement::saveDepartment'); - $routes->post('admin/departments/delete', 'Setting\\BedManagement::deleteDepartment'); - $routes->get('admin/wards', 'Setting\\BedManagement::wards'); - $routes->get('admin/bed-status', 'Setting\\BedManagement::bedStatus'); - $routes->post('admin/wards/save', 'Setting\\BedManagement::saveWard'); - $routes->post('admin/wards/delete', 'Setting\\BedManagement::deleteWard'); - $routes->get('admin/bed-categories', 'Setting\\BedManagement::categories'); - $routes->post('admin/bed-categories/save', 'Setting\\BedManagement::saveCategory'); - $routes->post('admin/bed-categories/delete', 'Setting\\BedManagement::deleteCategory'); - $routes->get('admin/beds', 'Setting\\BedManagement::beds'); - $routes->post('admin/beds/save', 'Setting\\BedManagement::saveBed'); - $routes->post('admin/beds/delete', 'Setting\\BedManagement::deleteBed'); - $routes->get('admin/bed-maintenance', 'Setting\\BedManagement::maintenance'); - $routes->post('admin/bed-maintenance/save', 'Setting\\BedManagement::saveMaintenance'); - $routes->post('admin/bed-maintenance/delete', 'Setting\\BedManagement::deleteMaintenance'); - $routes->get('admin/bed-assignments', 'Setting\\BedManagement::assignmentHistory'); - $routes->post('admin/bed-assignments/save', 'Setting\\BedManagement::saveAssignment'); - $routes->post('admin/bed-assignments/delete', 'Setting\\BedManagement::deleteAssignment'); + $routes->get('admin/bed-management', 'Setting\\BedManagement::index', ['filter' => $settingsBedFilter]); + $routes->get('admin/departments', 'Setting\\BedManagement::departments', ['filter' => $settingsBedFilter]); + $routes->post('admin/departments/save', 'Setting\\BedManagement::saveDepartment', ['filter' => $settingsBedFilter]); + $routes->post('admin/departments/delete', 'Setting\\BedManagement::deleteDepartment', ['filter' => $settingsBedFilter]); + $routes->get('admin/wards', 'Setting\\BedManagement::wards', ['filter' => $settingsBedFilter]); + $routes->get('admin/bed-status', 'Setting\\BedManagement::bedStatus', ['filter' => $settingsBedFilter]); + $routes->post('admin/wards/save', 'Setting\\BedManagement::saveWard', ['filter' => $settingsBedFilter]); + $routes->post('admin/wards/delete', 'Setting\\BedManagement::deleteWard', ['filter' => $settingsBedFilter]); + $routes->get('admin/bed-categories', 'Setting\\BedManagement::categories', ['filter' => $settingsBedFilter]); + $routes->post('admin/bed-categories/save', 'Setting\\BedManagement::saveCategory', ['filter' => $settingsBedFilter]); + $routes->post('admin/bed-categories/delete', 'Setting\\BedManagement::deleteCategory', ['filter' => $settingsBedFilter]); + $routes->get('admin/beds', 'Setting\\BedManagement::beds', ['filter' => $settingsBedFilter]); + $routes->post('admin/beds/save', 'Setting\\BedManagement::saveBed', ['filter' => $settingsBedFilter]); + $routes->post('admin/beds/delete', 'Setting\\BedManagement::deleteBed', ['filter' => $settingsBedFilter]); + $routes->get('admin/bed-maintenance', 'Setting\\BedManagement::maintenance', ['filter' => $settingsBedFilter]); + $routes->post('admin/bed-maintenance/save', 'Setting\\BedManagement::saveMaintenance', ['filter' => $settingsBedFilter]); + $routes->post('admin/bed-maintenance/delete', 'Setting\\BedManagement::deleteMaintenance', ['filter' => $settingsBedFilter]); + $routes->get('admin/bed-assignments', 'Setting\\BedManagement::assignmentHistory', ['filter' => $settingsBedFilter]); + $routes->post('admin/bed-assignments/save', 'Setting\\BedManagement::saveAssignment', ['filter' => $settingsBedFilter]); + $routes->post('admin/bed-assignments/delete', 'Setting\\BedManagement::deleteAssignment', ['filter' => $settingsBedFilter]); $stockPermFilter = 'permission:hospital_stock.access,hospital_stock.master.manage,hospital_stock.indent.create,hospital_stock.indent.approve,hospital_stock.issue,hospital_stock.purchase.manage,hospital_stock.report.view'; $routes->get('admin/hospital-stock', 'Setting\\HospitalStock::index', ['filter' => $stockPermFilter]); $routes->get('admin/hospital-stock/dashboard', 'Setting\\HospitalStock::dashboard', ['filter' => $stockPermFilter]); @@ -1010,7 +1017,7 @@ $routes->group('setting', static function($routes) { $routes->get('admin/hospital-stock/report/monthly-issue', 'Setting\\HospitalStock::reportMonthlyIssue', ['filter' => $stockPermFilter]); $routes->get('admin/hospital-stock/report/near-expiry', 'Setting\\HospitalStock::reportNearExpiry', ['filter' => $stockPermFilter]); $routes->get('template', 'Setting\\Template::index'); - $routes->get('charges', 'Setting\\Charges::index'); + $routes->get('charges', 'Setting\\Charges::index', ['filter' => $settingsChargesFilter]); }); $routes->group('item', static function($routes) { diff --git a/app/Views/partials/sidebar.php b/app/Views/partials/sidebar.php index 0641a30..6916fcf 100644 --- a/app/Views/partials/sidebar.php +++ b/app/Views/partials/sidebar.php @@ -115,6 +115,64 @@ if ($user && method_exists($user, 'can')) { if (! $canDiagnosis && $user && method_exists($user, 'inGroup')) { $canDiagnosis = $user->inGroup('superadmin', 'admin', 'developer'); } + +$canAbdm = false; +if ($user && method_exists($user, 'can')) { + $canAbdm = $user->can('abdm.access') + || $user->can('abdm.taskboard.access') + || $user->can('abdm.gateway.use') + || $user->can('abdm.*'); +} + +if (! $canAbdm && $user && method_exists($user, 'inGroup')) { + $canAbdm = $user->inGroup('superadmin', 'admin', 'developer'); +} + +$canBedStatus = false; +if ($user && method_exists($user, 'can')) { + $canBedStatus = $user->can('settings.bed_status.view') + || $user->can('admin.settings') + || $user->can('admin.access'); +} + +if (! $canBedStatus && $user && method_exists($user, 'inGroup')) { + $canBedStatus = $user->inGroup('superadmin', 'admin', 'developer'); +} + +$canReports = false; +if ($user && method_exists($user, 'can')) { + $canReports = $user->can('reports.access') + || $user->can('reports.collection.view') + || $user->can('reports.insurance_credit.view') + || $user->can('reports.nabh_audit.view') + || $user->can('diagnosis.report.view') + || $user->can('diagnosis.access'); +} + +if (! $canReports && $user && method_exists($user, 'inGroup')) { + $canReports = $user->inGroup('superadmin', 'admin', 'developer'); +} + +$canAdminPanel = false; +if ($user && method_exists($user, 'can')) { + $canAdminPanel = $user->can('admin.access') + || $user->can('admin.settings'); +} + +if (! $canAdminPanel && $user && method_exists($user, 'inGroup')) { + $canAdminPanel = $user->inGroup('superadmin', 'admin', 'developer'); +} + +$canChargesSettings = false; +if ($user && method_exists($user, 'can')) { + $canChargesSettings = $user->can('settings.charges.access') + || $user->can('admin.settings') + || $user->can('admin.access'); +} + +if (! $canChargesSettings && $user && method_exists($user, 'inGroup')) { + $canChargesSettings = $user->inGroup('superadmin', 'admin', 'developer'); +} ?> \ No newline at end of file