Mercurial > hg > orthanc-authorization
annotate Plugin/AssociativeArray.cpp @ 155:6673a963ddf0
sync
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 22 Mar 2024 15:08:48 +0100 |
parents | 9be1ee2b8fe1 |
children | c4b908970ae4 |
rev | line source |
---|---|
1 | 1 /** |
2 * Advanced authorization plugin for Orthanc | |
68 | 3 * Copyright (C) 2017-2023 Osimis S.A., Belgium |
150 | 4 * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium |
1 | 5 * |
6 * This program is free software: you can redistribute it and/or | |
7 * modify it under the terms of the GNU Affero General Public License | |
8 * as published by the Free Software Foundation, either version 3 of | |
9 * the License, or (at your option) any later version. | |
10 * | |
11 * This program is distributed in the hope that it will be useful, but | |
12 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 * Affero General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU Affero General Public License | |
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 **/ | |
19 | |
20 #include "AssociativeArray.h" | |
21 | |
32 | 22 #include <Toolbox.h> |
1 | 23 |
24 namespace OrthancPlugins | |
25 { | |
26 AssociativeArray::AssociativeArray(uint32_t headersCount, | |
27 const char *const *headersKeys, | |
28 const char *const *headersValues, | |
62
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
29 bool caseSensitiveKeys) : |
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
30 caseSensitiveKeys_(caseSensitiveKeys) |
1 | 31 { |
32 for (uint32_t i = 0; i < headersCount; i++) | |
33 { | |
62
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
34 std::string key = headersKeys[i]; |
1 | 35 |
62
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
36 if (!caseSensitiveKeys) |
1 | 37 { |
62
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
38 Orthanc::Toolbox::ToLowerCase(key, headersKeys[i]); |
1 | 39 } |
40 | |
62
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
41 map_[headersKeys[i]] = headersValues[i]; |
1 | 42 } |
43 } | |
44 | |
45 | |
46 bool AssociativeArray::GetValue(std::string& value, | |
47 const std::string& key) const | |
48 { | |
49 if (key.empty()) | |
50 { | |
51 return false; | |
52 } | |
53 | |
54 Map::const_iterator found; | |
55 | |
62
222f0652025f
fix get argument values that were transformed to lowercase
Alain Mazy <am@osimis.io>
parents:
46
diff
changeset
|
56 if (caseSensitiveKeys_) |
1 | 57 { |
58 found = map_.find(key); | |
59 } | |
60 else | |
61 { | |
62 std::string lower; | |
63 Orthanc::Toolbox::ToLowerCase(lower, key); | |
64 found = map_.find(lower); | |
65 } | |
66 | |
67 if (found == map_.end()) | |
68 { | |
69 return false; | |
70 } | |
71 else | |
72 { | |
73 value = found->second; | |
74 return true; | |
75 } | |
76 } | |
77 } |