Mercurial > hg > orthanc-authorization
annotate UnitTestsSources/UnitTestsMain.cpp @ 146:f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 13 Feb 2024 11:24:07 +0100 |
parents | 572955904411 |
children | 9f686ee4b158 |
rev | line source |
---|---|
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
1 /** |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
2 * Orthanc - A Lightweight, RESTful DICOM Store |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
4 * Department, University Hospital of Liege, Belgium |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
5 * Copyright (C) 2017-2021 Osimis S.A., Belgium |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
6 * |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
7 * This program is free software: you can redistribute it and/or |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Affero General Public License |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
9 * as published by the Free Software Foundation, either version 3 of |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
10 * the License, or (at your option) any later version. |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
11 * |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, but |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
13 * WITHOUT ANY WARRANTY; without even the implied warranty of |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
15 * Affero General Public License for more details. |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
16 * |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Affero General Public License |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
19 **/ |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
20 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
21 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
22 #include <gtest/gtest.h> |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
23 #include <boost/lexical_cast.hpp> |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
24 #include <boost/algorithm/string/predicate.hpp> |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
25 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
26 #include "../Plugin/DefaultAuthorizationParser.h" |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
27 #include "../Plugin/AssociativeArray.h" |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
28 #include "../Plugin/AccessedResource.h" |
111 | 29 #include "../Plugin/IAuthorizationService.h" |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
30 #include "../Plugin/MemoryCache.h" |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
31 #include "../Plugin/PermissionParser.h" |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
32 #include "../Plugin/ResourceHierarchyCache.h" |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
33 |
111 | 34 extern void AdjustToolsFindQueryLabels(Json::Value& query, const OrthancPlugins::IAuthorizationService::UserProfile& profile); |
35 | |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
36 using namespace OrthancPlugins; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
37 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
38 std::string instanceOrthancId = "44444444-44444444-44444444-44444444-44444444"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
39 std::string seriesOrthancId = "33333333-33333333-33333333-33333333-33333333"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
40 std::string studyOrthancId = "22222222-22222222-22222222-22222222-22222222"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
41 std::string patientOrthancId = "11111111-11111111-11111111-11111111-11111111"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
42 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
43 std::string instanceDicomUid = "4.4"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
44 std::string seriesDicomUid = "3.3"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
45 std::string studyDicomUid = "2.2"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
46 std::string patientDicomUid = "PATIENT.1"; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
47 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
48 bool IsAccessing(const IAuthorizationParser::AccessedResources& accesses, AccessLevel level, const std::string& orthancId) |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
49 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
50 for (IAuthorizationParser::AccessedResources::const_iterator it = accesses.begin(); it != accesses.end(); ++it) |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
51 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
52 if (it->GetLevel() == level && it->GetOrthancId() == orthancId) |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
53 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
54 return true; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
55 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
56 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
57 return false; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
58 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
59 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
60 namespace OrthancPlugins |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
61 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
62 // The namespace is necessary for friend classes to work |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
63 // http://code.google.com/p/googletest/wiki/AdvancedGuide#Private_Class_Members |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
64 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
65 TEST(DefaultAuthorizationParser, Parse) |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
66 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
67 MemoryCache::Factory factory(10); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
68 DefaultAuthorizationParser parser(factory, "/dicom-web/"); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
69 ResourceHierarchyCache* cache = parser.GetResourceHierarchy(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
70 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
71 cache->AddOrthancDicomMapping(Orthanc::ResourceType_Instance, instanceOrthancId, instanceDicomUid); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
72 cache->AddOrthancDicomMapping(Orthanc::ResourceType_Series, seriesOrthancId, seriesDicomUid); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
73 cache->AddOrthancDicomMapping(Orthanc::ResourceType_Study, studyOrthancId, studyDicomUid); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
74 cache->AddOrthancDicomMapping(Orthanc::ResourceType_Patient, patientOrthancId, patientDicomUid); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
75 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
76 cache->AddParentLink(Orthanc::ResourceType_Instance, instanceOrthancId, seriesOrthancId); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
77 cache->AddParentLink(Orthanc::ResourceType_Series, seriesOrthancId, studyOrthancId); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
78 cache->AddParentLink(Orthanc::ResourceType_Study, studyOrthancId, patientOrthancId); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
79 |
110 | 80 cache->AddLabels(Orthanc::ResourceType_Series, seriesOrthancId, "series-label"); |
81 cache->AddLabels(Orthanc::ResourceType_Study, studyOrthancId, "study-label"); | |
82 cache->AddLabels(Orthanc::ResourceType_Instance, instanceOrthancId, "instance-label"); | |
83 cache->AddLabels(Orthanc::ResourceType_Patient, patientOrthancId, "patient-label"); | |
84 | |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
85 IAuthorizationParser::AccessedResources accesses; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
86 AssociativeArray noGetArguments(0, NULL, NULL, false); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
87 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
88 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
89 parser.Parse(accesses, "/studies/22222222-22222222-22222222-22222222-22222222/", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
90 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
91 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
92 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
93 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
94 parser.Parse(accesses, "/studies/22222222-22222222-22222222-22222222-22222222/instances", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
95 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
96 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
97 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
98 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
99 parser.Parse(accesses, "/studies/22222222-22222222-22222222-22222222-22222222/archive", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
100 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
101 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
102 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
103 accesses.clear(); |
101 | 104 parser.Parse(accesses, "/studies/22222222-22222222-22222222-22222222-22222222/ohif-dicom.json", noGetArguments.GetMap()); |
105 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); | |
106 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); | |
107 | |
108 accesses.clear(); | |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
109 parser.Parse(accesses, "/osimis-viewer/studies/22222222-22222222-22222222-22222222-22222222/archive", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
110 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
111 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
112 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
113 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
114 parser.Parse(accesses, "/series/33333333-33333333-33333333-33333333-33333333/", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
115 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
116 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
117 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
118 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
119 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
120 parser.Parse(accesses, "/series/33333333-33333333-33333333-33333333-33333333/media", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
121 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
122 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
123 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
124 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
125 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
126 parser.Parse(accesses, "/series/33333333-33333333-33333333-33333333-33333333/modify", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
127 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
128 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
129 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
130 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
131 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
132 parser.Parse(accesses, "/web-viewer/series/33333333-33333333-33333333-33333333-33333333", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
133 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
134 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
135 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
136 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
137 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
138 parser.Parse(accesses, "/osimis-viewer/series/33333333-33333333-33333333-33333333-33333333", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
139 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
140 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
141 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
142 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
143 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
144 parser.Parse(accesses, "/instances/44444444-44444444-44444444-44444444-44444444/file", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
145 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
146 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
147 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
148 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
149 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
150 accesses.clear(); |
99 | 151 parser.Parse(accesses, "/instances/44444444-44444444-44444444-44444444-44444444/preview", noGetArguments.GetMap()); |
152 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); | |
153 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); | |
154 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); | |
155 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); | |
156 | |
157 accesses.clear(); | |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
158 parser.Parse(accesses, "/web-viewer/instances/jpeg95-44444444-44444444-44444444-44444444-44444444_0", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
159 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
160 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
161 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
162 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
163 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
164 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
165 parser.Parse(accesses, "/osimis-viewer/images/44444444-44444444-44444444-44444444-44444444/0/high-quality", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
166 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
167 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
168 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
169 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
170 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
171 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
172 parser.Parse(accesses, "/system", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
173 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/system")); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
174 |
146
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
175 accesses.clear(); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
176 parser.Parse(accesses, "/instances", noGetArguments.GetMap()); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
177 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/instances")); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
178 |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
179 accesses.clear(); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
180 parser.Parse(accesses, "/series", noGetArguments.GetMap()); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
181 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/series")); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
182 |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
183 accesses.clear(); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
184 parser.Parse(accesses, "/studies", noGetArguments.GetMap()); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
185 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/studies")); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
186 |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
187 accesses.clear(); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
188 parser.Parse(accesses, "/patients", noGetArguments.GetMap()); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
189 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/patients")); |
f294a3c6dbe6
Added 2 new default permissions for dicom-web (get and post on dicom-web/studies)
Alain Mazy <am@osimis.io>
parents:
112
diff
changeset
|
190 |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
191 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
192 ///////////////////////// dicom-web |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
193 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
194 parser.Parse(accesses, "/dicom-web/studies/2.2", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
195 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
196 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
197 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
198 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
199 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
200 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
201 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
202 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
203 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
204 accesses.clear(); |
80 | 205 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/rendered", noGetArguments.GetMap()); |
206 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); | |
207 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); | |
208 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); | |
209 | |
210 accesses.clear(); | |
211 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/metadata", noGetArguments.GetMap()); | |
212 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); | |
213 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); | |
214 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); | |
215 | |
216 accesses.clear(); | |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
217 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/instances/4.4", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
218 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
219 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
220 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
221 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
222 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
223 accesses.clear(); |
80 | 224 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/instances/4.4/metadata", noGetArguments.GetMap()); |
225 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); | |
226 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); | |
227 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); | |
228 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); | |
229 | |
230 accesses.clear(); | |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
231 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/instances/4.4/frames/0", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
232 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
233 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
234 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
235 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
236 |
80 | 237 accesses.clear(); |
238 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/instances/4.4/frames/0/rendered", noGetArguments.GetMap()); | |
239 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); | |
240 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); | |
241 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); | |
242 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); | |
243 | |
98
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
244 accesses.clear(); |
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
245 parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/instances/4.4/bulk/7fe00010", noGetArguments.GetMap()); |
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
246 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
247 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
248 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
249 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
c82f0c7d2c6a
Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes
Alain Mazy <am@osimis.io>
parents:
92
diff
changeset
|
250 |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
251 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
252 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
253 const char* getKeys[] = {"0020000D"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
254 const char* getValues[] = {"2.2"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
255 AssociativeArray getArguments(1, getKeys, getValues, false); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
256 parser.Parse(accesses, "/dicom-web/studies", getArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
257 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
258 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
259 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
260 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
261 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
262 const char* getKeys[] = {"0020000D", "0020000E"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
263 const char* getValues[] = {"2.2", "3.3"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
264 AssociativeArray getArguments(2, getKeys, getValues, false); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
265 parser.Parse(accesses, "/dicom-web/series", getArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
266 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
267 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
268 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
269 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
270 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
271 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
272 const char* getKeys[] = {"0020000D", "00080018", "0020000E"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
273 const char* getValues[] = {"2.2", "4.4", "3.3", }; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
274 AssociativeArray getArguments(3, getKeys, getValues, false); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
275 parser.Parse(accesses, "/dicom-web/studies", getArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
276 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
277 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
278 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
279 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
280 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
281 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
282 accesses.clear(); |
92
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
283 const char* getKeys[] = {"StudyInstanceUID", "SOPInstanceUID", "SeriesInstanceUID"}; |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
284 const char* getValues[] = {"2.2", "4.4", "3.3", }; |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
285 AssociativeArray getArguments(3, getKeys, getValues, false); |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
286 parser.Parse(accesses, "/dicom-web/studies", getArguments.GetMap()); |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
287 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
288 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
289 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
290 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
291 } |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
292 { |
8dc22bc353de
QIDO-RS now supports named tags in get arguments
Alain Mazy <am@osimis.io>
parents:
80
diff
changeset
|
293 accesses.clear(); |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
294 const char* getKeys[] = {"00100010"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
295 const char* getValues[] = {"PATIENT.1"}; |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
296 AssociativeArray getArguments(1, getKeys, getValues, false); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
297 parser.Parse(accesses, "/dicom-web/studies", getArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
298 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
299 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
300 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
301 { // qido with no arguments = search all => system resource |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
302 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
303 parser.Parse(accesses, "/dicom-web/studies", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
304 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/dicom-web/studies")); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
305 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
306 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
307 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
308 parser.Parse(accesses, "/dicom-web/servers", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
309 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/dicom-web/servers")); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
310 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
311 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
312 parser.Parse(accesses, "/dicom-web/info", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
313 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/dicom-web/info")); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
314 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
315 accesses.clear(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
316 parser.Parse(accesses, "/dicom-web/servers/test/qido", noGetArguments.GetMap()); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
317 ASSERT_TRUE(IsAccessing(accesses, AccessLevel_System, "/dicom-web/servers/test/qido")); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
318 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
319 } |
111 | 320 |
321 bool IsInJsonArray(const char* needle, const Json::Value& array) | |
322 { | |
323 for (Json::ArrayIndex i = 0; i < array.size(); ++i) | |
324 { | |
325 if (array[i].asString() == needle) | |
326 { | |
327 return true; | |
328 } | |
329 } | |
330 return false; | |
331 } | |
332 | |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
333 TEST(ToolsFindLabels, AdjustQueryForUserWithoutAuthorizedLabels) |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
334 { |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
335 // user who has access no authorized labels |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
336 OrthancPlugins::IAuthorizationService::UserProfile profile; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
337 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
338 { // any call to tools/find for such a user should fail since it does not have access to anything |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
339 Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
340 query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
341 query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
342 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
343 ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
344 } |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
345 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
346 } |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
347 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
348 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
349 |
111 | 350 TEST(ToolsFindLabels, AdjustQueryForUserWithoutRestrictions) |
351 { | |
352 // user who has access to all labels | |
353 OrthancPlugins::IAuthorizationService::UserProfile profile; | |
354 profile.authorizedLabels.insert("*"); | |
355 | |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
356 { // no labels filtering before transformation -> no labels filtering after |
111 | 357 Json::Value query; |
358 query["Query"] = Json::objectValue; | |
359 query["Query"]["PatientID"] = "*"; | |
360 | |
361 AdjustToolsFindQueryLabels(query, profile); | |
362 | |
363 ASSERT_FALSE(query.isMember("Labels")); | |
364 ASSERT_FALSE(query.isMember("LabelsConstraint")); | |
365 } | |
366 | |
367 { // missing LabelsConstraint -> throw | |
368 Json::Value query; | |
369 query["Query"] = Json::objectValue; | |
370 query["Query"]["PatientID"] = "*"; | |
371 query["Labels"] = Json::arrayValue; | |
372 query["Labels"].append("a"); | |
373 | |
374 ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); | |
375 } | |
376 | |
377 { // simple 'All' label constraint is not modified since user has access to all labels | |
378 Json::Value query; | |
379 query["Query"] = Json::objectValue; | |
380 query["Query"]["PatientID"] = "*"; | |
381 query["Labels"] = Json::arrayValue; | |
382 query["Labels"].append("a"); | |
383 query["Labels"].append("b"); | |
384 query["LabelsConstraint"] = "All"; | |
385 | |
386 AdjustToolsFindQueryLabels(query, profile); | |
387 | |
388 ASSERT_EQ(2u, query["Labels"].size()); | |
389 ASSERT_TRUE(IsInJsonArray("a", query["Labels"])); | |
390 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
391 ASSERT_EQ("All", query["LabelsConstraint"].asString()); | |
392 } | |
393 | |
394 { // simple 'Any' label constraint is not modified since user has access to all labels | |
395 Json::Value query; | |
396 query["Query"] = Json::objectValue; | |
397 query["Query"]["PatientID"] = "*"; | |
398 query["Labels"] = Json::arrayValue; | |
399 query["Labels"].append("a"); | |
400 query["Labels"].append("b"); | |
401 query["LabelsConstraint"] = "Any"; | |
402 | |
403 AdjustToolsFindQueryLabels(query, profile); | |
404 | |
405 ASSERT_EQ(2u, query["Labels"].size()); | |
406 ASSERT_TRUE(IsInJsonArray("a", query["Labels"])); | |
407 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
408 ASSERT_EQ("Any", query["LabelsConstraint"].asString()); | |
409 } | |
410 | |
411 { // simple 'None' label constraint is not modified since user has access to all labels | |
412 Json::Value query; | |
413 query["Query"] = Json::objectValue; | |
414 query["Query"]["PatientID"] = "*"; | |
415 query["Labels"] = Json::arrayValue; | |
416 query["Labels"].append("a"); | |
417 query["Labels"].append("b"); | |
418 query["LabelsConstraint"] = "None"; | |
419 | |
420 AdjustToolsFindQueryLabels(query, profile); | |
421 | |
422 ASSERT_EQ(2u, query["Labels"].size()); | |
423 ASSERT_TRUE(IsInJsonArray("a", query["Labels"])); | |
424 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
425 ASSERT_EQ("None", query["LabelsConstraint"].asString()); | |
426 } | |
427 | |
428 } | |
429 | |
430 | |
431 TEST(ToolsFindLabels, AdjustQueryForUserWithAuthorizedLabelsRestrictions) | |
432 { | |
433 // user who has access only to "b" and "c" | |
434 OrthancPlugins::IAuthorizationService::UserProfile profile; | |
435 profile.authorizedLabels.insert("b"); | |
436 profile.authorizedLabels.insert("c"); | |
437 | |
438 { // no labels before transformation -> "b", "c" label after | |
439 Json::Value query; | |
440 query["Query"] = Json::objectValue; | |
441 query["Query"]["PatientID"] = "*"; | |
442 | |
443 AdjustToolsFindQueryLabels(query, profile); | |
444 | |
445 ASSERT_EQ(2u, query["Labels"].size()); | |
446 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
447 ASSERT_TRUE(IsInJsonArray("c", query["Labels"])); | |
448 ASSERT_EQ("Any", query["LabelsConstraint"].asString()); | |
449 } | |
450 | |
451 { // missing LabelsConstraint -> throw | |
452 Json::Value query; | |
453 query["Query"] = Json::objectValue; | |
454 query["Query"]["PatientID"] = "*"; | |
455 query["Labels"] = Json::arrayValue; | |
456 query["Labels"].append("a"); | |
457 | |
458 ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); | |
459 } | |
460 | |
461 { // 'All' label constraint is not modified if it contains the labels that are accessible to the user | |
462 Json::Value query; | |
463 query["Query"] = Json::objectValue; | |
464 query["Query"]["PatientID"] = "*"; | |
465 query["Labels"] = Json::arrayValue; | |
466 query["Labels"].append("b"); | |
467 query["Labels"].append("c"); | |
468 query["LabelsConstraint"] = "All"; | |
469 | |
470 AdjustToolsFindQueryLabels(query, profile); | |
471 | |
472 ASSERT_EQ(2u, query["Labels"].size()); | |
473 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
474 ASSERT_TRUE(IsInJsonArray("c", query["Labels"])); | |
475 ASSERT_EQ("All", query["LabelsConstraint"].asString()); | |
476 } | |
477 | |
478 { // 'All' label constraint is not modified if it contains a subset of the labels that are accessible to the user | |
479 Json::Value query; | |
480 query["Query"] = Json::objectValue; | |
481 query["Query"]["PatientID"] = "*"; | |
482 query["Labels"] = Json::arrayValue; | |
483 query["Labels"].append("b"); | |
484 query["LabelsConstraint"] = "All"; | |
485 | |
486 AdjustToolsFindQueryLabels(query, profile); | |
487 | |
488 ASSERT_EQ(1u, query["Labels"].size()); | |
489 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
490 ASSERT_EQ("All", query["LabelsConstraint"].asString()); | |
491 } | |
492 | |
493 { // 'All' label constraint becomes invalid if it contains a label that is not accessible to the user | |
494 Json::Value query; | |
495 query["Query"] = Json::objectValue; | |
496 query["Query"]["PatientID"] = "*"; | |
497 query["Labels"] = Json::arrayValue; | |
498 query["Labels"].append("a"); | |
499 query["Labels"].append("b"); | |
500 query["LabelsConstraint"] = "All"; | |
501 | |
502 ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); | |
503 } | |
504 | |
505 { // 'Any' label constraint is not modified if it contains the labels that are accessible to the user | |
506 Json::Value query; | |
507 query["Query"] = Json::objectValue; | |
508 query["Query"]["PatientID"] = "*"; | |
509 query["Labels"] = Json::arrayValue; | |
510 query["Labels"].append("b"); | |
511 query["Labels"].append("c"); | |
512 query["LabelsConstraint"] = "Any"; | |
513 | |
514 AdjustToolsFindQueryLabels(query, profile); | |
515 | |
516 ASSERT_EQ(2u, query["Labels"].size()); | |
517 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
518 ASSERT_TRUE(IsInJsonArray("c", query["Labels"])); | |
519 ASSERT_EQ("Any", query["LabelsConstraint"].asString()); | |
520 } | |
521 | |
522 { // 'Any' label constraint is not modified if it contains a subset of the labels that are accessible to the user | |
523 Json::Value query; | |
524 query["Query"] = Json::objectValue; | |
525 query["Query"]["PatientID"] = "*"; | |
526 query["Labels"] = Json::arrayValue; | |
527 query["Labels"].append("b"); | |
528 query["LabelsConstraint"] = "Any"; | |
529 | |
530 AdjustToolsFindQueryLabels(query, profile); | |
531 | |
532 ASSERT_EQ(1u, query["Labels"].size()); | |
533 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
534 ASSERT_EQ("Any", query["LabelsConstraint"].asString()); | |
535 } | |
536 | |
537 { // 'Any' label constraint only contains the intersection of the initial requested labels and the ones authorized to the user | |
538 Json::Value query; | |
539 query["Query"] = Json::objectValue; | |
540 query["Query"]["PatientID"] = "*"; | |
541 query["Labels"] = Json::arrayValue; | |
542 query["Labels"].append("a"); | |
543 query["Labels"].append("b"); | |
544 query["LabelsConstraint"] = "Any"; | |
545 | |
546 AdjustToolsFindQueryLabels(query, profile); | |
547 | |
548 ASSERT_EQ(1u, query["Labels"].size()); | |
549 ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); | |
550 ASSERT_EQ("Any", query["LabelsConstraint"].asString()); | |
551 } | |
552 | |
553 { // 'Any' label constraint can not be modified if the initial requested labels have nothing in common with the authorized labels | |
554 Json::Value query; | |
555 query["Query"] = Json::objectValue; | |
556 query["Query"]["PatientID"] = "*"; | |
557 query["Labels"] = Json::arrayValue; | |
558 query["Labels"].append("d"); | |
559 query["Labels"].append("e"); | |
560 query["LabelsConstraint"] = "Any"; | |
561 | |
562 ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); | |
563 } | |
564 | |
565 { // 'None' label constraint can not be modified since the user has only 'authorized_labels' -> throw | |
566 Json::Value query; | |
567 query["Query"] = Json::objectValue; | |
568 query["Query"]["PatientID"] = "*"; | |
569 query["Labels"] = Json::arrayValue; | |
570 query["Labels"].append("b"); | |
571 query["Labels"].append("c"); | |
572 query["LabelsConstraint"] = "None"; | |
573 | |
574 ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); | |
575 } | |
576 } | |
577 | |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
578 // TEST(ToolsFindLabels, AdjustQueryForUserWithForbiddenLabelsRestrictions) |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
579 // { |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
580 // // user who has forbidden access to "b" and "c" |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
581 // OrthancPlugins::IAuthorizationService::UserProfile profile; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
582 // profile.forbiddenLabels.insert("b"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
583 // profile.forbiddenLabels.insert("c"); |
111 | 584 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
585 // { // no labels before transformation -> "b", "c" label after (with a 'None' constraint) |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
586 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
587 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
588 // query["Query"]["PatientID"] = "*"; |
111 | 589 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
590 // AdjustToolsFindQueryLabels(query, profile); |
111 | 591 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
592 // ASSERT_EQ(2u, query["Labels"].size()); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
593 // ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
594 // ASSERT_TRUE(IsInJsonArray("c", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
595 // ASSERT_EQ("None", query["LabelsConstraint"].asString()); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
596 // } |
111 | 597 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
598 // { // missing LabelsConstraint -> throw |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
599 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
600 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
601 // query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
602 // query["Labels"] = Json::arrayValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
603 // query["Labels"].append("a"); |
111 | 604 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
605 // ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
606 // } |
111 | 607 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
608 // { // 'All' label constraint can not be modified for user with forbidden labels |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
609 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
610 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
611 // query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
612 // query["Labels"] = Json::arrayValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
613 // query["Labels"].append("b"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
614 // query["Labels"].append("c"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
615 // query["LabelsConstraint"] = "All"; |
111 | 616 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
617 // ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
618 // } |
111 | 619 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
620 // { // 'Any' label constraint can not be modified for user with forbidden labels |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
621 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
622 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
623 // query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
624 // query["Labels"] = Json::arrayValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
625 // query["Labels"].append("b"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
626 // query["Labels"].append("c"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
627 // query["LabelsConstraint"] = "Any"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
628 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
629 // ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
630 // } |
111 | 631 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
632 // { // 'Any' label constraint can not be modified for user with forbidden labels |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
633 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
634 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
635 // query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
636 // query["Labels"] = Json::arrayValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
637 // query["Labels"].append("a"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
638 // query["LabelsConstraint"] = "Any"; |
111 | 639 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
640 // ASSERT_THROW(AdjustToolsFindQueryLabels(query, profile), Orthanc::OrthancException); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
641 // } |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
642 |
111 | 643 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
644 // { // 'None' label constraint are modified to always contain at least all forbidden_labels of the user |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
645 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
646 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
647 // query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
648 // query["Labels"] = Json::arrayValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
649 // query["Labels"].append("b"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
650 // query["LabelsConstraint"] = "None"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
651 |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
652 // AdjustToolsFindQueryLabels(query, profile); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
653 // ASSERT_EQ(2u, query["Labels"].size()); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
654 // ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
655 // ASSERT_TRUE(IsInJsonArray("c", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
656 // ASSERT_EQ("None", query["LabelsConstraint"].asString()); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
657 // } |
111 | 658 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
659 // { // 'None' label constraint are modified to always contain at least all forbidden_labels of the user |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
660 // Json::Value query; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
661 // query["Query"] = Json::objectValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
662 // query["Query"]["PatientID"] = "*"; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
663 // query["Labels"] = Json::arrayValue; |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
664 // query["Labels"].append("d"); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
665 // query["LabelsConstraint"] = "None"; |
111 | 666 |
112
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
667 // AdjustToolsFindQueryLabels(query, profile); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
668 // ASSERT_EQ(3u, query["Labels"].size()); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
669 // ASSERT_TRUE(IsInJsonArray("b", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
670 // ASSERT_TRUE(IsInJsonArray("c", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
671 // ASSERT_TRUE(IsInJsonArray("d", query["Labels"])); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
672 // ASSERT_EQ("None", query["LabelsConstraint"].asString()); |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
673 // } |
572955904411
added tools/labels + removed forbidden_labels
Alain Mazy <am@osimis.io>
parents:
111
diff
changeset
|
674 // } |
111 | 675 |
77
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
676 } |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
677 |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
678 int main(int argc, char **argv) |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
679 { |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
680 ::testing::InitGoogleTest(&argc, argv); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
681 return RUN_ALL_TESTS(); |
94a9484d7f8f
fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents:
diff
changeset
|
682 } |