mirror of
https://github.com/status-im/spiff-arena.git
synced 2025-02-25 07:55:16 +00:00
allow removing users from groups when refreshing permissions w/ burnettk
This commit is contained in:
parent
eb1ac56617
commit
ada389b572
File diff suppressed because one or more lines are too long
@ -1,316 +0,0 @@
|
|||||||
{
|
|
||||||
"data": {
|
|
||||||
"validate_only": false,
|
|
||||||
"my_var_now": 2,
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
},
|
|
||||||
"last_task": "b6e341d6-4bc5-4ec0-a93e-9d2154bcf58f",
|
|
||||||
"success": true,
|
|
||||||
"tasks": {
|
|
||||||
"8156eb2b-8edb-425b-a775-2bd37fd891af": {
|
|
||||||
"id": "8156eb2b-8edb-425b-a775-2bd37fd891af",
|
|
||||||
"parent": null,
|
|
||||||
"children": [
|
|
||||||
"d070c7f3-be9e-4f6e-b81a-7647ee6b7582"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674629.05859,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Root",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {}
|
|
||||||
},
|
|
||||||
"d070c7f3-be9e-4f6e-b81a-7647ee6b7582": {
|
|
||||||
"id": "d070c7f3-be9e-4f6e-b81a-7647ee6b7582",
|
|
||||||
"parent": "8156eb2b-8edb-425b-a775-2bd37fd891af",
|
|
||||||
"children": [
|
|
||||||
"3e542841-075e-4e18-906e-4ac68168fda7"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674629.094655,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Start",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3e542841-075e-4e18-906e-4ac68168fda7": {
|
|
||||||
"id": "3e542841-075e-4e18-906e-4ac68168fda7",
|
|
||||||
"parent": "d070c7f3-be9e-4f6e-b81a-7647ee6b7582",
|
|
||||||
"children": [
|
|
||||||
"1685edde-09eb-4363-88b7-9b12f37ea1ef"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674629.1414993,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "StartEvent_1",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {
|
|
||||||
"event_fired": true
|
|
||||||
},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"1685edde-09eb-4363-88b7-9b12f37ea1ef": {
|
|
||||||
"id": "1685edde-09eb-4363-88b7-9b12f37ea1ef",
|
|
||||||
"parent": "3e542841-075e-4e18-906e-4ac68168fda7",
|
|
||||||
"children": [
|
|
||||||
"380f4e01-bb6c-42e0-9ed8-e7a14f1bd756"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674629.1694856,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "super_awesome_script",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"380f4e01-bb6c-42e0-9ed8-e7a14f1bd756": {
|
|
||||||
"id": "380f4e01-bb6c-42e0-9ed8-e7a14f1bd756",
|
|
||||||
"parent": "1685edde-09eb-4363-88b7-9b12f37ea1ef",
|
|
||||||
"children": [
|
|
||||||
"f4846e08-8e5f-47db-87f0-41daacbd3e5b"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674629.2164488,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Event_08g7f08",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"f4846e08-8e5f-47db-87f0-41daacbd3e5b": {
|
|
||||||
"id": "f4846e08-8e5f-47db-87f0-41daacbd3e5b",
|
|
||||||
"parent": "380f4e01-bb6c-42e0-9ed8-e7a14f1bd756",
|
|
||||||
"children": [
|
|
||||||
"b6e341d6-4bc5-4ec0-a93e-9d2154bcf58f"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674629.2567987,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "process_to_call.EndJoin",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"b6e341d6-4bc5-4ec0-a93e-9d2154bcf58f": {
|
|
||||||
"id": "b6e341d6-4bc5-4ec0-a93e-9d2154bcf58f",
|
|
||||||
"parent": "f4846e08-8e5f-47db-87f0-41daacbd3e5b",
|
|
||||||
"children": [],
|
|
||||||
"last_state_change": 1674674629.28801,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "End",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "process_to_call",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "8156eb2b-8edb-425b-a775-2bd37fd891af",
|
|
||||||
"spec": {
|
|
||||||
"name": "process_to_call",
|
|
||||||
"description": "Process to call",
|
|
||||||
"file": "callable_process.bpmn",
|
|
||||||
"task_specs": {
|
|
||||||
"Start": {
|
|
||||||
"id": "process_to_call_1",
|
|
||||||
"name": "Start",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [],
|
|
||||||
"outputs": [
|
|
||||||
"StartEvent_1"
|
|
||||||
],
|
|
||||||
"typename": "StartTask"
|
|
||||||
},
|
|
||||||
"process_to_call.EndJoin": {
|
|
||||||
"id": "process_to_call_2",
|
|
||||||
"name": "process_to_call.EndJoin",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Event_08g7f08"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"End"
|
|
||||||
],
|
|
||||||
"typename": "_EndJoin"
|
|
||||||
},
|
|
||||||
"End": {
|
|
||||||
"id": "process_to_call_3",
|
|
||||||
"name": "End",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"process_to_call.EndJoin"
|
|
||||||
],
|
|
||||||
"outputs": [],
|
|
||||||
"typename": "Simple"
|
|
||||||
},
|
|
||||||
"StartEvent_1": {
|
|
||||||
"id": "process_to_call_4",
|
|
||||||
"name": "StartEvent_1",
|
|
||||||
"description": null,
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Start"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"super_awesome_script"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 179,
|
|
||||||
"y": 159
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"event_definition": {
|
|
||||||
"internal": false,
|
|
||||||
"external": false,
|
|
||||||
"typename": "NoneEventDefinition"
|
|
||||||
},
|
|
||||||
"typename": "StartEvent",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"super_awesome_script": {
|
|
||||||
"id": "process_to_call_5",
|
|
||||||
"name": "super_awesome_script",
|
|
||||||
"description": "Super Awesome Script",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"StartEvent_1"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"Event_08g7f08"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 380,
|
|
||||||
"y": 137
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [
|
|
||||||
{
|
|
||||||
"name": "my_var_now",
|
|
||||||
"description": "my_var_now",
|
|
||||||
"typename": "BpmnDataSpecification"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prescript": null,
|
|
||||||
"postscript": null,
|
|
||||||
"script": "a = 1\nmy_var_now = 2",
|
|
||||||
"typename": "ScriptTask",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"Event_08g7f08": {
|
|
||||||
"id": "process_to_call_6",
|
|
||||||
"name": "Event_08g7f08",
|
|
||||||
"description": null,
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"super_awesome_script"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"process_to_call.EndJoin"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 522,
|
|
||||||
"y": 159
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"event_definition": {
|
|
||||||
"internal": false,
|
|
||||||
"external": false,
|
|
||||||
"typename": "NoneEventDefinition"
|
|
||||||
},
|
|
||||||
"typename": "EndEvent",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"Root": {
|
|
||||||
"id": "process_to_call_7",
|
|
||||||
"name": "Root",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [],
|
|
||||||
"outputs": [],
|
|
||||||
"typename": "Simple"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"data_inputs": [],
|
|
||||||
"data_outputs": [],
|
|
||||||
"data_objects": {
|
|
||||||
"my_var_now": {
|
|
||||||
"name": "my_var_now",
|
|
||||||
"description": "my_var_now",
|
|
||||||
"typename": "BpmnDataSpecification"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"correlation_keys": {},
|
|
||||||
"typename": "BpmnProcessSpec"
|
|
||||||
},
|
|
||||||
"subprocess_specs": {},
|
|
||||||
"subprocesses": {},
|
|
||||||
"bpmn_messages": [],
|
|
||||||
"serializer_version": "1.0-spiffworkflow-backend"
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
@ -1,621 +0,0 @@
|
|||||||
{
|
|
||||||
"data": {
|
|
||||||
"validate_only": false,
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
},
|
|
||||||
"last_task": "9655e709-3600-43d0-a08d-bb52892333e9",
|
|
||||||
"success": true,
|
|
||||||
"tasks": {
|
|
||||||
"a9495420-a98f-4574-86eb-57875fabd465": {
|
|
||||||
"id": "a9495420-a98f-4574-86eb-57875fabd465",
|
|
||||||
"parent": null,
|
|
||||||
"children": [
|
|
||||||
"6f4e2241-9268-40fb-8636-a6b5d511ade4"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.1271565,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Root",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {}
|
|
||||||
},
|
|
||||||
"6f4e2241-9268-40fb-8636-a6b5d511ade4": {
|
|
||||||
"id": "6f4e2241-9268-40fb-8636-a6b5d511ade4",
|
|
||||||
"parent": "a9495420-a98f-4574-86eb-57875fabd465",
|
|
||||||
"children": [
|
|
||||||
"4536669f-7896-46e0-9587-0243e0bf03fa"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.1695502,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Start",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4536669f-7896-46e0-9587-0243e0bf03fa": {
|
|
||||||
"id": "4536669f-7896-46e0-9587-0243e0bf03fa",
|
|
||||||
"parent": "6f4e2241-9268-40fb-8636-a6b5d511ade4",
|
|
||||||
"children": [
|
|
||||||
"75ff9e01-4570-4ad5-bf87-537c15d67cd6"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.1987424,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "StartEvent_1",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {
|
|
||||||
"event_fired": true
|
|
||||||
},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"75ff9e01-4570-4ad5-bf87-537c15d67cd6": {
|
|
||||||
"id": "75ff9e01-4570-4ad5-bf87-537c15d67cd6",
|
|
||||||
"parent": "4536669f-7896-46e0-9587-0243e0bf03fa",
|
|
||||||
"children": [
|
|
||||||
"f0646cac-f127-491f-9d8d-7a88044af404"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.5499449,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "call_one",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"f0646cac-f127-491f-9d8d-7a88044af404": {
|
|
||||||
"id": "f0646cac-f127-491f-9d8d-7a88044af404",
|
|
||||||
"parent": "75ff9e01-4570-4ad5-bf87-537c15d67cd6",
|
|
||||||
"children": [
|
|
||||||
"f25607a0-a3dd-4b08-876f-973cc5569b6a"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.5961928,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Event_0pq4nje",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"f25607a0-a3dd-4b08-876f-973cc5569b6a": {
|
|
||||||
"id": "f25607a0-a3dd-4b08-876f-973cc5569b6a",
|
|
||||||
"parent": "f0646cac-f127-491f-9d8d-7a88044af404",
|
|
||||||
"children": [
|
|
||||||
"9655e709-3600-43d0-a08d-bb52892333e9"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.6496456,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Process_rmvgdyk.EndJoin",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"9655e709-3600-43d0-a08d-bb52892333e9": {
|
|
||||||
"id": "9655e709-3600-43d0-a08d-bb52892333e9",
|
|
||||||
"parent": "f25607a0-a3dd-4b08-876f-973cc5569b6a",
|
|
||||||
"children": [],
|
|
||||||
"last_state_change": 1674674684.6751294,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "End",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "Process_rmvgdyk",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "a9495420-a98f-4574-86eb-57875fabd465",
|
|
||||||
"spec": {
|
|
||||||
"name": "Process_rmvgdyk",
|
|
||||||
"description": "Process_rmvgdyk",
|
|
||||||
"file": "start.bpmn",
|
|
||||||
"task_specs": {
|
|
||||||
"Start": {
|
|
||||||
"id": "Process_rmvgdyk_1",
|
|
||||||
"name": "Start",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [],
|
|
||||||
"outputs": [
|
|
||||||
"StartEvent_1"
|
|
||||||
],
|
|
||||||
"typename": "StartTask"
|
|
||||||
},
|
|
||||||
"Process_rmvgdyk.EndJoin": {
|
|
||||||
"id": "Process_rmvgdyk_2",
|
|
||||||
"name": "Process_rmvgdyk.EndJoin",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Event_0pq4nje"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"End"
|
|
||||||
],
|
|
||||||
"typename": "_EndJoin"
|
|
||||||
},
|
|
||||||
"End": {
|
|
||||||
"id": "Process_rmvgdyk_3",
|
|
||||||
"name": "End",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Process_rmvgdyk.EndJoin"
|
|
||||||
],
|
|
||||||
"outputs": [],
|
|
||||||
"typename": "Simple"
|
|
||||||
},
|
|
||||||
"StartEvent_1": {
|
|
||||||
"id": "Process_rmvgdyk_4",
|
|
||||||
"name": "StartEvent_1",
|
|
||||||
"description": null,
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Start"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"call_one"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 179,
|
|
||||||
"y": 159
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"event_definition": {
|
|
||||||
"internal": false,
|
|
||||||
"external": false,
|
|
||||||
"typename": "NoneEventDefinition"
|
|
||||||
},
|
|
||||||
"typename": "StartEvent",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"call_one": {
|
|
||||||
"id": "Process_rmvgdyk_5",
|
|
||||||
"name": "call_one",
|
|
||||||
"description": "Call One",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"StartEvent_1"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"Event_0pq4nje"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 270,
|
|
||||||
"y": 137
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"prescript": "a = 1",
|
|
||||||
"postscript": null,
|
|
||||||
"spec": "process_to_call",
|
|
||||||
"typename": "CallActivity",
|
|
||||||
"extensions": {
|
|
||||||
"preScript": "a = 1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Event_0pq4nje": {
|
|
||||||
"id": "Process_rmvgdyk_6",
|
|
||||||
"name": "Event_0pq4nje",
|
|
||||||
"description": null,
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"call_one"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"Process_rmvgdyk.EndJoin"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 912,
|
|
||||||
"y": 159
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"event_definition": {
|
|
||||||
"internal": false,
|
|
||||||
"external": false,
|
|
||||||
"typename": "NoneEventDefinition"
|
|
||||||
},
|
|
||||||
"typename": "EndEvent",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"Root": {
|
|
||||||
"id": "Process_rmvgdyk_7",
|
|
||||||
"name": "Root",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [],
|
|
||||||
"outputs": [],
|
|
||||||
"typename": "Simple"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"data_inputs": [],
|
|
||||||
"data_outputs": [],
|
|
||||||
"data_objects": {},
|
|
||||||
"correlation_keys": {},
|
|
||||||
"typename": "BpmnProcessSpec"
|
|
||||||
},
|
|
||||||
"subprocess_specs": {
|
|
||||||
"process_to_call": {
|
|
||||||
"name": "process_to_call",
|
|
||||||
"description": "Process to call",
|
|
||||||
"file": "/home/jason/projects/github/sartography/sample-process-models/misc/category_number_one/call-activity/callable_process.bpmn",
|
|
||||||
"task_specs": {
|
|
||||||
"Start": {
|
|
||||||
"id": "process_to_call_1",
|
|
||||||
"name": "Start",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [],
|
|
||||||
"outputs": [
|
|
||||||
"StartEvent_1"
|
|
||||||
],
|
|
||||||
"typename": "StartTask"
|
|
||||||
},
|
|
||||||
"process_to_call.EndJoin": {
|
|
||||||
"id": "process_to_call_2",
|
|
||||||
"name": "process_to_call.EndJoin",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Event_08g7f08"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"End"
|
|
||||||
],
|
|
||||||
"typename": "_EndJoin"
|
|
||||||
},
|
|
||||||
"End": {
|
|
||||||
"id": "process_to_call_3",
|
|
||||||
"name": "End",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"process_to_call.EndJoin"
|
|
||||||
],
|
|
||||||
"outputs": [],
|
|
||||||
"typename": "Simple"
|
|
||||||
},
|
|
||||||
"StartEvent_1": {
|
|
||||||
"id": "process_to_call_4",
|
|
||||||
"name": "StartEvent_1",
|
|
||||||
"description": null,
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"Start"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"super_awesome_script"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 179,
|
|
||||||
"y": 159
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"event_definition": {
|
|
||||||
"internal": false,
|
|
||||||
"external": false,
|
|
||||||
"typename": "NoneEventDefinition"
|
|
||||||
},
|
|
||||||
"typename": "StartEvent",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"super_awesome_script": {
|
|
||||||
"id": "process_to_call_5",
|
|
||||||
"name": "super_awesome_script",
|
|
||||||
"description": "Super Awesome Script",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"StartEvent_1"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"Event_08g7f08"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 380,
|
|
||||||
"y": 137
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [
|
|
||||||
{
|
|
||||||
"name": "my_var_now",
|
|
||||||
"description": "my_var_now",
|
|
||||||
"typename": "BpmnDataSpecification"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prescript": null,
|
|
||||||
"postscript": null,
|
|
||||||
"script": "a = 1\nmy_var_now = 2",
|
|
||||||
"typename": "ScriptTask",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"Event_08g7f08": {
|
|
||||||
"id": "process_to_call_6",
|
|
||||||
"name": "Event_08g7f08",
|
|
||||||
"description": null,
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [
|
|
||||||
"super_awesome_script"
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
"process_to_call.EndJoin"
|
|
||||||
],
|
|
||||||
"lane": null,
|
|
||||||
"documentation": null,
|
|
||||||
"loopTask": false,
|
|
||||||
"position": {
|
|
||||||
"x": 522,
|
|
||||||
"y": 159
|
|
||||||
},
|
|
||||||
"data_input_associations": [],
|
|
||||||
"data_output_associations": [],
|
|
||||||
"event_definition": {
|
|
||||||
"internal": false,
|
|
||||||
"external": false,
|
|
||||||
"typename": "NoneEventDefinition"
|
|
||||||
},
|
|
||||||
"typename": "EndEvent",
|
|
||||||
"extensions": {}
|
|
||||||
},
|
|
||||||
"Root": {
|
|
||||||
"id": "process_to_call_7",
|
|
||||||
"name": "Root",
|
|
||||||
"description": "",
|
|
||||||
"manual": false,
|
|
||||||
"internal": false,
|
|
||||||
"lookahead": 2,
|
|
||||||
"inputs": [],
|
|
||||||
"outputs": [],
|
|
||||||
"typename": "Simple"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"data_inputs": [],
|
|
||||||
"data_outputs": [],
|
|
||||||
"data_objects": {
|
|
||||||
"my_var_now": {
|
|
||||||
"name": "my_var_now",
|
|
||||||
"description": "my_var_now",
|
|
||||||
"typename": "BpmnDataSpecification"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"correlation_keys": {},
|
|
||||||
"typename": "BpmnProcessSpec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"subprocesses": {
|
|
||||||
"75ff9e01-4570-4ad5-bf87-537c15d67cd6": {
|
|
||||||
"data": {
|
|
||||||
"validate_only": false,
|
|
||||||
"my_var_now": 2,
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
},
|
|
||||||
"last_task": "188eb6c3-d7c5-4900-b690-9cbb92ef2b19",
|
|
||||||
"success": true,
|
|
||||||
"tasks": {
|
|
||||||
"a296c968-f6cb-42f2-a4b1-1268aca41c5d": {
|
|
||||||
"id": "a296c968-f6cb-42f2-a4b1-1268aca41c5d",
|
|
||||||
"parent": null,
|
|
||||||
"children": [
|
|
||||||
"8b4a92af-104b-4e78-9008-b690fbe7f560"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.2170289,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Root",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {}
|
|
||||||
},
|
|
||||||
"8b4a92af-104b-4e78-9008-b690fbe7f560": {
|
|
||||||
"id": "8b4a92af-104b-4e78-9008-b690fbe7f560",
|
|
||||||
"parent": "a296c968-f6cb-42f2-a4b1-1268aca41c5d",
|
|
||||||
"children": [
|
|
||||||
"7ec77604-d1b9-4be3-a9aa-2eef295be9d2"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.2541206,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Start",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"7ec77604-d1b9-4be3-a9aa-2eef295be9d2": {
|
|
||||||
"id": "7ec77604-d1b9-4be3-a9aa-2eef295be9d2",
|
|
||||||
"parent": "8b4a92af-104b-4e78-9008-b690fbe7f560",
|
|
||||||
"children": [
|
|
||||||
"305310bd-9425-46af-ba78-90f3dae283e3"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.2768772,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "StartEvent_1",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {
|
|
||||||
"event_fired": true
|
|
||||||
},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"305310bd-9425-46af-ba78-90f3dae283e3": {
|
|
||||||
"id": "305310bd-9425-46af-ba78-90f3dae283e3",
|
|
||||||
"parent": "7ec77604-d1b9-4be3-a9aa-2eef295be9d2",
|
|
||||||
"children": [
|
|
||||||
"cb25e1f8-c570-4af3-b8eb-be57746cd765"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.322075,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "super_awesome_script",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cb25e1f8-c570-4af3-b8eb-be57746cd765": {
|
|
||||||
"id": "cb25e1f8-c570-4af3-b8eb-be57746cd765",
|
|
||||||
"parent": "305310bd-9425-46af-ba78-90f3dae283e3",
|
|
||||||
"children": [
|
|
||||||
"bbfc1793-787b-417b-8089-9bb194ae4034"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.3872745,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "Event_08g7f08",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bbfc1793-787b-417b-8089-9bb194ae4034": {
|
|
||||||
"id": "bbfc1793-787b-417b-8089-9bb194ae4034",
|
|
||||||
"parent": "cb25e1f8-c570-4af3-b8eb-be57746cd765",
|
|
||||||
"children": [
|
|
||||||
"188eb6c3-d7c5-4900-b690-9cbb92ef2b19"
|
|
||||||
],
|
|
||||||
"last_state_change": 1674674684.4518044,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "process_to_call.EndJoin",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"188eb6c3-d7c5-4900-b690-9cbb92ef2b19": {
|
|
||||||
"id": "188eb6c3-d7c5-4900-b690-9cbb92ef2b19",
|
|
||||||
"parent": "bbfc1793-787b-417b-8089-9bb194ae4034",
|
|
||||||
"children": [],
|
|
||||||
"last_state_change": 1674674684.500384,
|
|
||||||
"state": 32,
|
|
||||||
"task_spec": "End",
|
|
||||||
"triggered": false,
|
|
||||||
"workflow_name": "call_one",
|
|
||||||
"internal_data": {},
|
|
||||||
"data": {
|
|
||||||
"current_user": {
|
|
||||||
"username": "jason@sartography.com",
|
|
||||||
"id": "1"
|
|
||||||
},
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "a296c968-f6cb-42f2-a4b1-1268aca41c5d"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bpmn_messages": [],
|
|
||||||
"serializer_version": "1.0-spiffworkflow-backend"
|
|
||||||
}
|
|
@ -77,11 +77,17 @@ PATH_SEGMENTS_FOR_PERMISSION_ALL = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class UserToGroupDict(TypedDict):
|
||||||
|
username: str
|
||||||
|
group_identifier: str
|
||||||
|
|
||||||
|
|
||||||
class DesiredPermissionDict(TypedDict):
|
class DesiredPermissionDict(TypedDict):
|
||||||
"""DesiredPermissionDict."""
|
"""DesiredPermissionDict."""
|
||||||
|
|
||||||
group_identifiers: Set[str]
|
group_identifiers: Set[str]
|
||||||
permission_assignments: list[PermissionAssignmentModel]
|
permission_assignments: list[PermissionAssignmentModel]
|
||||||
|
user_to_group_identifiers: list[UserToGroupDict]
|
||||||
|
|
||||||
|
|
||||||
class AuthorizationService:
|
class AuthorizationService:
|
||||||
@ -212,6 +218,7 @@ class AuthorizationService:
|
|||||||
|
|
||||||
default_group = None
|
default_group = None
|
||||||
unique_user_group_identifiers: Set[str] = set()
|
unique_user_group_identifiers: Set[str] = set()
|
||||||
|
user_to_group_identifiers: list[UserToGroupDict] = []
|
||||||
if "default_group" in permission_configs:
|
if "default_group" in permission_configs:
|
||||||
default_group_identifier = permission_configs["default_group"]
|
default_group_identifier = permission_configs["default_group"]
|
||||||
default_group = GroupService.find_or_create_group(default_group_identifier)
|
default_group = GroupService.find_or_create_group(default_group_identifier)
|
||||||
@ -231,6 +238,11 @@ class AuthorizationService:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
|
user_to_group_dict: UserToGroupDict = {
|
||||||
|
"username": user.username,
|
||||||
|
"group_identifier": group_identifier,
|
||||||
|
}
|
||||||
|
user_to_group_identifiers.append(user_to_group_dict)
|
||||||
cls.associate_user_with_group(user, group)
|
cls.associate_user_with_group(user, group)
|
||||||
|
|
||||||
permission_assignments = []
|
permission_assignments = []
|
||||||
@ -275,6 +287,7 @@ class AuthorizationService:
|
|||||||
return {
|
return {
|
||||||
"group_identifiers": unique_user_group_identifiers,
|
"group_identifiers": unique_user_group_identifiers,
|
||||||
"permission_assignments": permission_assignments,
|
"permission_assignments": permission_assignments,
|
||||||
|
"user_to_group_identifiers": user_to_group_identifiers,
|
||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -735,13 +748,20 @@ class AuthorizationService:
|
|||||||
def refresh_permissions(cls, group_info: list[dict[str, Any]]) -> None:
|
def refresh_permissions(cls, group_info: list[dict[str, Any]]) -> None:
|
||||||
"""Adds new permission assignments and deletes old ones."""
|
"""Adds new permission assignments and deletes old ones."""
|
||||||
initial_permission_assignments = PermissionAssignmentModel.query.all()
|
initial_permission_assignments = PermissionAssignmentModel.query.all()
|
||||||
|
initial_user_to_group_assignments = UserGroupAssignmentModel.query.all()
|
||||||
result = cls.import_permissions_from_yaml_file()
|
result = cls.import_permissions_from_yaml_file()
|
||||||
desired_permission_assignments = result["permission_assignments"]
|
desired_permission_assignments = result["permission_assignments"]
|
||||||
desired_group_identifiers = result["group_identifiers"]
|
desired_group_identifiers = result["group_identifiers"]
|
||||||
|
desired_user_to_group_identifiers = result["user_to_group_identifiers"]
|
||||||
|
|
||||||
for group in group_info:
|
for group in group_info:
|
||||||
group_identifier = group["name"]
|
group_identifier = group["name"]
|
||||||
for username in group["users"]:
|
for username in group["users"]:
|
||||||
|
user_to_group_dict: UserToGroupDict = {
|
||||||
|
"username": username,
|
||||||
|
"group_identifier": group_identifier,
|
||||||
|
}
|
||||||
|
desired_user_to_group_identifiers.append(user_to_group_dict)
|
||||||
GroupService.add_user_to_group_or_add_to_waiting(
|
GroupService.add_user_to_group_or_add_to_waiting(
|
||||||
username, group_identifier
|
username, group_identifier
|
||||||
)
|
)
|
||||||
@ -761,6 +781,14 @@ class AuthorizationService:
|
|||||||
if ipa not in desired_permission_assignments:
|
if ipa not in desired_permission_assignments:
|
||||||
db.session.delete(ipa)
|
db.session.delete(ipa)
|
||||||
|
|
||||||
|
for iutga in initial_user_to_group_assignments:
|
||||||
|
current_user_dict: UserToGroupDict = {
|
||||||
|
"username": iutga.user.username,
|
||||||
|
"group_identifier": iutga.group.identifier,
|
||||||
|
}
|
||||||
|
if current_user_dict not in desired_user_to_group_identifiers:
|
||||||
|
db.session.delete(iutga)
|
||||||
|
|
||||||
groups_to_delete = GroupModel.query.filter(
|
groups_to_delete = GroupModel.query.filter(
|
||||||
GroupModel.identifier.not_in(desired_group_identifiers)
|
GroupModel.identifier.not_in(desired_group_identifiers)
|
||||||
).all()
|
).all()
|
||||||
|
@ -381,18 +381,27 @@ class TestAuthorizationService(BaseTest):
|
|||||||
) -> None:
|
) -> None:
|
||||||
"""Test_can_refresh_permissions."""
|
"""Test_can_refresh_permissions."""
|
||||||
user = self.find_or_create_user(username="user_one")
|
user = self.find_or_create_user(username="user_one")
|
||||||
|
user_two = self.find_or_create_user(username="user_two")
|
||||||
admin_user = self.find_or_create_user(username="testadmin1")
|
admin_user = self.find_or_create_user(username="testadmin1")
|
||||||
|
|
||||||
# this group is not mentioned so it will get deleted
|
# this group is not mentioned so it will get deleted
|
||||||
GroupService.find_or_create_group("group_two")
|
GroupService.find_or_create_group("group_two")
|
||||||
assert GroupModel.query.filter_by(identifier="group_two").first() is not None
|
assert GroupModel.query.filter_by(identifier="group_two").first() is not None
|
||||||
|
|
||||||
|
GroupService.find_or_create_group("group_three")
|
||||||
|
assert GroupModel.query.filter_by(identifier="group_three").first() is not None
|
||||||
|
|
||||||
group_info = [
|
group_info = [
|
||||||
{
|
{
|
||||||
"users": ["user_one"],
|
"users": ["user_one", "user_two"],
|
||||||
"name": "group_one",
|
"name": "group_one",
|
||||||
"permissions": [{"actions": ["create", "read"], "uri": "PG:hey"}],
|
"permissions": [{"actions": ["create", "read"], "uri": "PG:hey"}],
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"users": ["user_two"],
|
||||||
|
"name": "group_three",
|
||||||
|
"permissions": [{"actions": ["create", "read"], "uri": "PG:hey2"}],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
AuthorizationService.refresh_permissions(group_info)
|
AuthorizationService.refresh_permissions(group_info)
|
||||||
assert GroupModel.query.filter_by(identifier="group_two").first() is None
|
assert GroupModel.query.filter_by(identifier="group_two").first() is None
|
||||||
@ -402,12 +411,32 @@ class TestAuthorizationService(BaseTest):
|
|||||||
self.assert_user_has_permission(user, "read", "/v1.0/process-groups/hey:yo")
|
self.assert_user_has_permission(user, "read", "/v1.0/process-groups/hey:yo")
|
||||||
self.assert_user_has_permission(user, "create", "/v1.0/process-groups/hey:yo")
|
self.assert_user_has_permission(user, "create", "/v1.0/process-groups/hey:yo")
|
||||||
|
|
||||||
|
self.assert_user_has_permission(user_two, "read", "/v1.0/process-groups/hey")
|
||||||
|
self.assert_user_has_permission(user_two, "read", "/v1.0/process-groups/hey:yo")
|
||||||
|
self.assert_user_has_permission(
|
||||||
|
user_two, "create", "/v1.0/process-groups/hey:yo"
|
||||||
|
)
|
||||||
|
assert GroupModel.query.filter_by(identifier="group_three").first() is not None
|
||||||
|
self.assert_user_has_permission(user_two, "read", "/v1.0/process-groups/hey2")
|
||||||
|
self.assert_user_has_permission(
|
||||||
|
user_two, "read", "/v1.0/process-groups/hey2:yo"
|
||||||
|
)
|
||||||
|
self.assert_user_has_permission(
|
||||||
|
user_two, "create", "/v1.0/process-groups/hey2:yo"
|
||||||
|
)
|
||||||
|
|
||||||
|
# remove access to 'hey' from user_two
|
||||||
group_info = [
|
group_info = [
|
||||||
{
|
{
|
||||||
"users": ["user_one"],
|
"users": ["user_one"],
|
||||||
"name": "group_one",
|
"name": "group_one",
|
||||||
"permissions": [{"actions": ["read"], "uri": "PG:hey"}],
|
"permissions": [{"actions": ["read"], "uri": "PG:hey"}],
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"users": ["user_two"],
|
||||||
|
"name": "group_three",
|
||||||
|
"permissions": [{"actions": ["create", "read"], "uri": "PG:hey2"}],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
AuthorizationService.refresh_permissions(group_info)
|
AuthorizationService.refresh_permissions(group_info)
|
||||||
assert GroupModel.query.filter_by(identifier="group_one").first() is not None
|
assert GroupModel.query.filter_by(identifier="group_one").first() is not None
|
||||||
@ -417,3 +446,15 @@ class TestAuthorizationService(BaseTest):
|
|||||||
user, "create", "/v1.0/process-groups/hey:yo", expected_result=False
|
user, "create", "/v1.0/process-groups/hey:yo", expected_result=False
|
||||||
)
|
)
|
||||||
self.assert_user_has_permission(admin_user, "create", "/anything-they-want")
|
self.assert_user_has_permission(admin_user, "create", "/anything-they-want")
|
||||||
|
|
||||||
|
self.assert_user_has_permission(
|
||||||
|
user_two, "read", "/v1.0/process-groups/hey", expected_result=False
|
||||||
|
)
|
||||||
|
assert GroupModel.query.filter_by(identifier="group_three").first() is not None
|
||||||
|
self.assert_user_has_permission(user_two, "read", "/v1.0/process-groups/hey2")
|
||||||
|
self.assert_user_has_permission(
|
||||||
|
user_two, "read", "/v1.0/process-groups/hey2:yo"
|
||||||
|
)
|
||||||
|
self.assert_user_has_permission(
|
||||||
|
user_two, "create", "/v1.0/process-groups/hey2:yo"
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user