|
19 | 19 | from nrlf.core.codes import SpineErrorConcept |
20 | 20 | from nrlf.core.config import Config |
21 | 21 | from nrlf.core.constants import ( |
22 | | - CLIENT_RP_DETAILS, |
23 | | - CONNECTION_METADATA, |
24 | 22 | NHSD_CORRELATION_ID_HEADER, |
25 | 23 | PERMISSION_ALLOW_ALL_POINTER_TYPES, |
26 | 24 | X_CORRELATION_ID_HEADER, |
27 | 25 | X_REQUEST_ID_HEADER, |
28 | 26 | AccessControls, |
29 | 27 | PointerTypes, |
| 28 | + V2Headers, |
30 | 29 | ) |
31 | 30 | from nrlf.core.dynamodb.repository import DocumentPointerRepository |
32 | 31 | from nrlf.core.errors import OperationOutcomeError, ParseError |
@@ -145,17 +144,18 @@ def wrapper(*args, **kwargs) -> Dict[str, Any]: |
145 | 144 | RepositoryType = Union[Type[DocumentPointerRepository], None] |
146 | 145 |
|
147 | 146 |
|
148 | | -def _use_v2_permissions_model(headers: Dict[str, str]) -> bool: |
| 147 | +def _use_v2_permissions_model(headers: Dict[str, str], path: str) -> bool: |
149 | 148 | case_insensitive_headers = {key.lower(): value for key, value in headers.items()} |
150 | 149 |
|
151 | | - v1_headers_provided = ( |
152 | | - CLIENT_RP_DETAILS in case_insensitive_headers.keys() |
153 | | - and CONNECTION_METADATA in case_insensitive_headers.keys() |
| 150 | + v2_headers_provided = ( |
| 151 | + V2Headers.NHSD_END_USER_ORGANISATION_ODS in case_insensitive_headers.keys() |
| 152 | + and V2Headers.NHSD_NRL_APP_ID in case_insensitive_headers.keys() |
154 | 153 | ) |
155 | | - if v1_headers_provided: |
| 154 | + if not v2_headers_provided: |
156 | 155 | return False |
157 | 156 |
|
158 | | - v2_permissions_configured = get_pointer_permissions_v2() != {} |
| 157 | + metadata = parse_headers(headers, use_v2_permissions=True) |
| 158 | + v2_permissions_configured = get_pointer_permissions_v2(metadata, path) != {} |
159 | 159 |
|
160 | 160 | return v2_permissions_configured |
161 | 161 |
|
@@ -195,7 +195,7 @@ def _load_v2_connection_metadata(headers: Dict[str, str], path: str): |
195 | 195 | def load_connection_metadata(headers: Dict[str, str], config: Config, path=""): |
196 | 196 | logger.log(LogReference.HANDLER002, headers=headers) |
197 | 197 |
|
198 | | - if _use_v2_permissions_model(headers): |
| 198 | + if _use_v2_permissions_model(headers, path): |
199 | 199 | return _load_v2_connection_metadata(headers, path) |
200 | 200 |
|
201 | 201 | metadata = parse_headers(headers, use_v2_permissions=False) |
|
0 commit comments