@@ -65,61 +65,6 @@ def list():
6565 return [control .value for control in AccessControls ]
6666
6767
68- class SupplierType (Enum ):
69- PRODUCER = "producer"
70- CONSUMER = "consumer"
71-
72- @staticmethod
73- def list ():
74- return [supplier .value for supplier in SupplierType ]
75-
76-
77- class V2PermissionKey (Enum ):
78- ACCESS_CONTROLS = "access_controls"
79- TYPES = "types"
80- CATEGORIES = "categories"
81- INTERACTIONS = "interactions"
82- PRODUCE_FOR_AUTHORS = "produce_for_authors"
83- PRODUCE_FOR_CUSTODIANS = "produce_for_custodians"
84-
85- @staticmethod
86- def list ():
87- return [permission_key .value for permission_key in V2PermissionKey ]
88-
89- def human_readable (self , plural = False ):
90- human_lookup = {
91- V2PermissionKey .ACCESS_CONTROLS .value : {
92- "singular" : "access control" ,
93- "plural" : "access controls" ,
94- },
95- V2PermissionKey .TYPES .value : {
96- "singular" : "pointer type" ,
97- "plural" : "pointer types" ,
98- },
99- V2PermissionKey .CATEGORIES .value : {
100- "singular" : "category" ,
101- "plural" : "categories" ,
102- },
103- V2PermissionKey .INTERACTIONS .value : {
104- "singular" : "interaction" ,
105- "plural" : "interactions" ,
106- },
107- V2PermissionKey .PRODUCE_FOR_AUTHORS .value : {
108- "singular" : "produce for author" ,
109- "plural" : "produce for authors" ,
110- },
111- V2PermissionKey .PRODUCE_FOR_CUSTODIANS .value : {
112- "singular" : "produce for custodian" ,
113- "plural" : "produce for custodians" ,
114- },
115- }
116-
117- if plural :
118- return human_lookup .get (self .value )["plural" ]
119-
120- return human_lookup .get (self .value )["singular" ]
121-
122-
12368NHSD_REQUEST_ID_HEADER = "NHSD-Request-Id"
12469NHSD_CORRELATION_ID_HEADER = "NHSD-Correlation-Id"
12570X_REQUEST_ID_HEADER = "X-Request-Id"
@@ -790,3 +735,56 @@ def coding_value(self):
790735 "application/fhir+json" ,
791736 "application/json+fhir" ,
792737}
738+
739+
740+ class V2PermissionKey (Enum ):
741+ ACCESS_CONTROLS = "access_controls"
742+ TYPES = "types"
743+ CATEGORIES = "categories"
744+ INTERACTIONS = "interactions"
745+ PRODUCE_FOR_AUTHORS = "produce_for_authors"
746+ PRODUCE_FOR_CUSTODIANS = "produce_for_custodians"
747+
748+ @staticmethod
749+ def list ():
750+ return [permission_key .value for permission_key in V2PermissionKey ]
751+
752+
753+ PERMISSION_KEY_ATTRIBUTES = {
754+ V2PermissionKey .ACCESS_CONTROLS .value : {
755+ "display" : "access controls" ,
756+ "display_singular" : "access control" ,
757+ "permission_lookup" : None ,
758+ "all_assignable_permission_items" : AccessControls .list (),
759+ },
760+ V2PermissionKey .TYPES .value : {
761+ "display" : "pointer types" ,
762+ "display_singular" : "pointer type" ,
763+ "permission_lookup" : TYPE_ATTRIBUTES ,
764+ "all_assignable_permission_items" : PointerTypes .list (),
765+ },
766+ V2PermissionKey .CATEGORIES .value : {
767+ "display" : "categories" ,
768+ "display_singular" : "category" ,
769+ "permission_lookup" : CATEGORY_ATTRIBUTES ,
770+ "all_assignable_permission_items" : Categories .list (),
771+ },
772+ V2PermissionKey .INTERACTIONS .value : {
773+ "display" : "interactions" ,
774+ "display_singular" : "interaction" ,
775+ "permission_lookup" : "" ,
776+ "all_assignable_permission_items" : "" ,
777+ },
778+ V2PermissionKey .PRODUCE_FOR_AUTHORS .value : {
779+ "display" : "produce for authors" ,
780+ "display_singular" : "produce for author" ,
781+ "permission_lookup" : "" ,
782+ "all_assignable_permission_items" : "" ,
783+ },
784+ V2PermissionKey .PRODUCE_FOR_CUSTODIANS .value : {
785+ "display" : "produce for custodians" ,
786+ "display_singular" : "produce for custodian" ,
787+ "permission_lookup" : "" ,
788+ "all_assignable_permission_items" : "" ,
789+ },
790+ }
0 commit comments