更新bug
This commit is contained in:
@@ -121,6 +121,9 @@ $myPatientScopeMethod = diagnosisWorkspaceMethodSource(
|
||||
$diagnosisReadonlyAuthMethod = diagnosisWorkspaceMethodSource(
|
||||
(new ReflectionClass(DiagnosisLogic::class))->getMethod('canViewReadonlyDiagnosis')
|
||||
);
|
||||
$diagnosisManageAuthMethod = diagnosisWorkspaceMethodSource(
|
||||
(new ReflectionClass(DiagnosisLogic::class))->getMethod('canManageDiagnosis')
|
||||
);
|
||||
$diagnosisAiAuthMethod = diagnosisWorkspaceMethodSource(
|
||||
(new ReflectionClass(DiagnosisAiLogic::class))->getMethod('loadAuthorizedDiagnosis')
|
||||
);
|
||||
@@ -161,9 +164,16 @@ diagnosisWorkspaceAuthExpect(
|
||||
'DataScope ALL is reserved for team roles before ordinary doctor and assistant self-relations'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($diagnosisReadonlyAuthMethod, 'MyPatientLogic::canAccessDiagnosis(')
|
||||
&& !str_contains($diagnosisReadonlyAuthMethod, 'DataScopeService::getVisibleAdminIds'),
|
||||
'readonly diagnosis authorization reuses the canonical patient row policy'
|
||||
str_contains($diagnosisReadonlyAuthMethod, "Diagnosis::where('id', \$diagnosisId)")
|
||||
&& str_contains($diagnosisReadonlyAuthMethod, "in_array(2, \$roleIds, true)")
|
||||
&& str_contains($diagnosisReadonlyAuthMethod, "\$query->where('assistant_id', \$adminId)")
|
||||
&& str_contains($diagnosisReadonlyAuthMethod, 'DataScopeService::getVisibleAdminIds(')
|
||||
&& !str_contains($diagnosisReadonlyAuthMethod, 'MyPatientLogic::canAccessDiagnosis('),
|
||||
'readonly diagnosis authorization matches diagnosis-list visibility instead of my-patient ownership'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($diagnosisManageAuthMethod, 'MyPatientLogic::canAccessDiagnosis('),
|
||||
'diagnosis write authorization keeps the canonical my-patient ownership policy'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($diagnosisAiAuthMethod, 'MyPatientLogic::canAccessDiagnosis(')
|
||||
@@ -192,10 +202,10 @@ diagnosisWorkspaceAuthExpect(
|
||||
'doctorNotes authorizes the diagnosis before reading notes'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($addDoctorNoteControllerMethod, 'DiagnosisLogic::canViewReadonlyDiagnosis(')
|
||||
&& strpos($addDoctorNoteControllerMethod, 'DiagnosisLogic::canViewReadonlyDiagnosis(')
|
||||
str_contains($addDoctorNoteControllerMethod, 'DiagnosisLogic::canManageDiagnosis(')
|
||||
&& strpos($addDoctorNoteControllerMethod, 'DiagnosisLogic::canManageDiagnosis(')
|
||||
< strpos($addDoctorNoteControllerMethod, 'DoctorNoteLogic::addOrAppend('),
|
||||
'addDoctorNote authorizes the diagnosis before writing any note data'
|
||||
'addDoctorNote keeps the stricter ownership check before writing any note data'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($receptionMethod, 'appointmentRowManageableByAdmin(')
|
||||
@@ -204,10 +214,10 @@ diagnosisWorkspaceAuthExpect(
|
||||
'reception authorizes the appointment before loading its detail DTO'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($prescriptionListMethod, 'MyPatientLogic::canAccessDiagnosis(')
|
||||
&& strpos($prescriptionListMethod, 'MyPatientLogic::canAccessDiagnosis(')
|
||||
str_contains($prescriptionListMethod, 'DiagnosisLogic::canViewReadonlyDiagnosis(')
|
||||
&& strpos($prescriptionListMethod, 'DiagnosisLogic::canViewReadonlyDiagnosis(')
|
||||
< strpos($prescriptionListMethod, "Prescription::where('diagnosis_id', \$diagnosisId)"),
|
||||
'listByDiagnosis authorizes its parent diagnosis before the first prescription SQL query'
|
||||
'listByDiagnosis uses read visibility before the first prescription SQL query'
|
||||
);
|
||||
diagnosisWorkspaceAuthExpect(
|
||||
str_contains($prescriptionLogicSource, 'self::canViewPrescription($row, $viewerAdminId, $viewerAdminInfo)')
|
||||
|
||||
Reference in New Issue
Block a user