Mercurial > hg > orthanc-authorization
annotate Plugin/AccessedResource.cpp @ 31:c304ffca5d80
upgrade to year 2020
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 31 Jan 2020 17:51:30 +0100 |
parents | c44013681a51 |
children | 79d871605ffd |
rev | line source |
---|---|
1 | 1 /** |
2 * Advanced authorization plugin for Orthanc | |
31
c304ffca5d80
upgrade to year 2020
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
22
diff
changeset
|
3 * Copyright (C) 2017-2020 Osimis S.A., Belgium |
1 | 4 * |
5 * This program is free software: you can redistribute it and/or | |
6 * modify it under the terms of the GNU Affero General Public License | |
7 * as published by the Free Software Foundation, either version 3 of | |
8 * the License, or (at your option) any later version. | |
9 * | |
10 * This program is distributed in the hope that it will be useful, but | |
11 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 * Affero General Public License for more details. | |
14 * | |
15 * You should have received a copy of the GNU Affero General Public License | |
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 **/ | |
18 | |
19 #include "AccessedResource.h" | |
20 | |
22
c44013681a51
now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1
diff
changeset
|
21 #include <Core/OrthancException.h> |
1 | 22 |
23 namespace OrthancPlugins | |
24 { | |
25 AccessedResource::AccessedResource(AccessLevel level, | |
26 const std::string& orthancId, | |
27 const std::string& dicomUid) : | |
28 level_(level), | |
29 orthancId_(orthancId), | |
30 dicomUid_(dicomUid) | |
31 { | |
32 if (level_ == AccessLevel_System && | |
33 !dicomUid.empty()) | |
34 { | |
35 // The "DICOM UID" makes no sense for custom Orthanc URIs | |
36 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | |
37 } | |
38 } | |
39 | |
40 | |
41 AccessedResource::AccessedResource(Orthanc::ResourceType level, | |
42 const std::string& orthancId, | |
43 const std::string& dicomUid) : | |
44 orthancId_(orthancId), | |
45 dicomUid_(dicomUid) | |
46 { | |
47 switch (level) | |
48 { | |
49 case Orthanc::ResourceType_Patient: | |
50 level_ = AccessLevel_Patient; | |
51 break; | |
52 | |
53 case Orthanc::ResourceType_Study: | |
54 level_ = AccessLevel_Study; | |
55 break; | |
56 | |
57 case Orthanc::ResourceType_Series: | |
58 level_ = AccessLevel_Series; | |
59 break; | |
60 | |
61 case Orthanc::ResourceType_Instance: | |
62 level_ = AccessLevel_Instance; | |
63 break; | |
64 | |
65 default: | |
66 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | |
67 } | |
68 } | |
69 | |
70 | |
71 const std::string& AccessedResource::GetDicomUid() const | |
72 { | |
73 if (level_ == AccessLevel_System) | |
74 { | |
75 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
76 } | |
77 else | |
78 { | |
79 return dicomUid_; | |
80 } | |
81 } | |
82 } |