Skip to content

Commit 0e4372e

Browse files
committed
NRL-738 check if permisions exist and allow all pointers
1 parent fff7efe commit 0e4372e

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

layer/nrlf/core/constants.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,12 @@ class Source(Enum):
3333
PERMISSION_SUPERSEDE_IGNORE_DELETE_FAIL = "supersede-ignore-delete-fail"
3434

3535
PRODUCER_URL_PATH = "/nrl-producer-api/FHIR/R4/DocumentReference"
36+
POINTER_TYPES = {
37+
"736253002": "Mental Health Crisis Plan",
38+
"1363501000000100": "Royal College of Physicians NEWS2 (National Early Warning Score 2) chart",
39+
"1382601000000107": "ReSPECT (Recommended Summary Plan for Emergency Care and Treatment) form",
40+
"325691000000100": "Contingency plan",
41+
"736373009": "End of life care plan",
42+
"861421000000109": "End of Life Care Coordination Summary",
43+
"887701000000100": "Emergency Health Care Plans",
44+
}

layer/nrlf/core/decorators.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from nrlf.core.authoriser import get_pointer_types
1616
from nrlf.core.codes import SpineErrorConcept
1717
from nrlf.core.config import Config
18+
from nrlf.core.constants import POINTER_TYPES
1819
from nrlf.core.dynamodb.repository import DocumentPointerRepository
1920
from nrlf.core.errors import OperationOutcomeError, ParseError
2021
from nrlf.core.logger import LogReference, logger
@@ -66,7 +67,10 @@ def load_connection_metadata(headers: Dict[str, str], config: Config):
6667
logger.log(LogReference.HANDLER002, headers=headers)
6768
metadata = parse_headers(headers)
6869
logger.log(LogReference.HANDLER003, metadata=metadata.dict())
69-
70+
if metadata.nrl_permissions:
71+
logger.log(LogReference.HANDLER004a)
72+
metadata.pointer_types = list(POINTER_TYPES.values())
73+
return metadata
7074
if metadata.enable_authorization_lookup:
7175
logger.log(LogReference.HANDLER004)
7276
pointer_types = get_pointer_types(metadata, config)

layer/nrlf/core/log_references.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class LogReference(Enum):
1515
HANDLER002 = _Reference("DEBUG", "Attempting to parse request headers")
1616
HANDLER003 = _Reference("INFO", "Parsed metadata from request headers")
1717
HANDLER004 = _Reference("INFO", "Authorisation lookup enabled")
18+
HANDLER004a = _Reference("INFO", "Authorisation lookup skipped for sync request")
1819
HANDLER005 = _Reference("WARN", "Rejecting request due to missing pointer types")
1920
HANDLER006 = _Reference("DEBUG", "Attempting to parse request parameters")
2021
HANDLER007 = _Reference("INFO", "Parsed request parameters")

tests/performance/environment.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import fire
88
from nhs_number import generate
99

10+
from nrlf.core.constants import POINTER_TYPES
1011
from nrlf.core.dynamodb.repository import DocumentPointer
1112
from nrlf.core.logger import logger
1213
from nrlf.tests.data import load_document_reference
@@ -20,17 +21,6 @@ class LogReference:
2021
pass
2122

2223

23-
POINTER_TYPES = {
24-
"736253002": "Mental Health Crisis Plan",
25-
"1363501000000100": "Royal College of Physicians NEWS2 (National Early Warning Score 2) chart",
26-
"1382601000000107": "ReSPECT (Recommended Summary Plan for Emergency Care and Treatment) form",
27-
"325691000000100": "Contingency plan",
28-
"736373009": "End of life care plan",
29-
"861421000000109": "End of Life Care Coordination Summary",
30-
"887701000000100": "Emergency Health Care Plans",
31-
}
32-
33-
3424
def _generate_record(nhs_number: str, pointer_type: str, ods_code: str):
3525
doc_ref = load_document_reference("Y05868-736253002-Valid")
3626

0 commit comments

Comments
 (0)