diff Plugin/AuthorizationParserBase.cpp @ 77:94a9484d7f8f

fix security issues allowing to browse remote dicom servers + introduced UnitTests
author Alain Mazy <am@osimis.io>
date Wed, 15 Mar 2023 16:36:42 +0100
parents 1a13c4fbc9a1
children 7381a7674b36
line wrap: on
line diff
--- a/Plugin/AuthorizationParserBase.cpp	Thu Mar 09 14:37:52 2023 +0100
+++ b/Plugin/AuthorizationParserBase.cpp	Wed Mar 15 16:36:42 2023 +0100
@@ -102,6 +102,18 @@
     target.push_back(AccessedResource(Orthanc::ResourceType_Study, study, studyDicomUid));
   }
 
+  void AuthorizationParserBase::AddDicomPatient(AccessedResources& target,
+                                                const std::string& patientId)
+  {
+    std::string patient;
+
+    if (!resourceHierarchy_->LookupOrthancId(patient, Orthanc::ResourceType_Patient, patientId))
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource);
+    }
+
+    AddResourceInternal(target, Orthanc::ResourceType_Patient, patient);
+  }
   
   void AuthorizationParserBase::AddDicomSeries(AccessedResources& target,
                                                const std::string& studyDicomUid,