mirror of
https://github.com/sartography/spiff-arena.git
synced 2025-02-23 14:48:35 +00:00
fix permissions for process callers api
This commit is contained in:
parent
451bc4bbc9
commit
c7b69e0fd9
@ -519,16 +519,16 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
/processes/{bpmn_process_identifier}/callers:
|
/processes/callers:
|
||||||
parameters:
|
parameters:
|
||||||
- name: bpmn_process_identifier
|
- name: bpmn_process_identifier
|
||||||
in: path
|
in: query
|
||||||
required: true
|
required: true
|
||||||
description: the modified process model id
|
description: the bpmn process identifier/id (not the name with spaces and not the process model identifier)
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
get:
|
get:
|
||||||
operationId: spiffworkflow_backend.routes.process_api_blueprint.process_caller_lists
|
operationId: spiffworkflow_backend.routes.process_api_blueprint.process_caller_list
|
||||||
summary:
|
summary:
|
||||||
Return a list of information about all processes that call the provided process id
|
Return a list of information about all processes that call the provided process id
|
||||||
tags:
|
tags:
|
||||||
|
@ -18,13 +18,13 @@ def setup_database_uri(app: Flask) -> None:
|
|||||||
if app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_URI") is None:
|
if app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_URI") is None:
|
||||||
database_name = f"spiffworkflow_backend_{app.config['ENV_IDENTIFIER']}"
|
database_name = f"spiffworkflow_backend_{app.config['ENV_IDENTIFIER']}"
|
||||||
if app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_TYPE") == "sqlite":
|
if app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_TYPE") == "sqlite":
|
||||||
app.config[
|
app.config["SQLALCHEMY_DATABASE_URI"] = (
|
||||||
"SQLALCHEMY_DATABASE_URI"
|
f"sqlite:///{app.instance_path}/db_{app.config['ENV_IDENTIFIER']}.sqlite3"
|
||||||
] = f"sqlite:///{app.instance_path}/db_{app.config['ENV_IDENTIFIER']}.sqlite3"
|
)
|
||||||
elif app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_TYPE") == "postgres":
|
elif app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_TYPE") == "postgres":
|
||||||
app.config[
|
app.config["SQLALCHEMY_DATABASE_URI"] = (
|
||||||
"SQLALCHEMY_DATABASE_URI"
|
f"postgresql://spiffworkflow_backend:spiffworkflow_backend@localhost:5432/{database_name}"
|
||||||
] = f"postgresql://spiffworkflow_backend:spiffworkflow_backend@localhost:5432/{database_name}"
|
)
|
||||||
else:
|
else:
|
||||||
# use pswd to trick flake8 with hardcoded passwords
|
# use pswd to trick flake8 with hardcoded passwords
|
||||||
db_pswd = app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_PASSWORD")
|
db_pswd = app.config.get("SPIFFWORKFLOW_BACKEND_DATABASE_PASSWORD")
|
||||||
|
@ -127,9 +127,9 @@ class ProcessInstanceModel(SpiffworkflowBaseDBModel):
|
|||||||
def serialized_with_metadata(self) -> dict[str, Any]:
|
def serialized_with_metadata(self) -> dict[str, Any]:
|
||||||
process_instance_attributes = self.serialized
|
process_instance_attributes = self.serialized
|
||||||
process_instance_attributes["process_metadata"] = self.process_metadata
|
process_instance_attributes["process_metadata"] = self.process_metadata
|
||||||
process_instance_attributes[
|
process_instance_attributes["process_model_with_diagram_identifier"] = (
|
||||||
"process_model_with_diagram_identifier"
|
self.process_model_with_diagram_identifier
|
||||||
] = self.process_model_with_diagram_identifier
|
)
|
||||||
return process_instance_attributes
|
return process_instance_attributes
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -78,7 +78,7 @@ def process_list() -> Any:
|
|||||||
return SpecReferenceSchema(many=True).dump(references)
|
return SpecReferenceSchema(many=True).dump(references)
|
||||||
|
|
||||||
|
|
||||||
def process_caller_lists(bpmn_process_identifier: str) -> Any:
|
def process_caller_list(bpmn_process_identifier: str) -> Any:
|
||||||
callers = ProcessCallerService.callers(bpmn_process_identifier)
|
callers = ProcessCallerService.callers(bpmn_process_identifier)
|
||||||
references = (
|
references = (
|
||||||
SpecReferenceCache.query.filter_by(type="process").filter(SpecReferenceCache.identifier.in_(callers)).all()
|
SpecReferenceCache.query.filter_by(type="process").filter(SpecReferenceCache.identifier.in_(callers)).all()
|
||||||
|
@ -572,6 +572,7 @@ class AuthorizationService:
|
|||||||
permissions_to_assign: list[PermissionToAssign] = []
|
permissions_to_assign: list[PermissionToAssign] = []
|
||||||
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/process-instances/for-me"))
|
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/process-instances/for-me"))
|
||||||
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/processes"))
|
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/processes"))
|
||||||
|
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/processes/callers"))
|
||||||
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/service-tasks"))
|
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/service-tasks"))
|
||||||
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/user-groups/for-current-user"))
|
permissions_to_assign.append(PermissionToAssign(permission="read", target_uri="/user-groups/for-current-user"))
|
||||||
permissions_to_assign.append(PermissionToAssign(permission="create", target_uri="/users/exists/by-username"))
|
permissions_to_assign.append(PermissionToAssign(permission="create", target_uri="/users/exists/by-username"))
|
||||||
|
@ -423,9 +423,9 @@ class ProcessInstanceProcessor:
|
|||||||
tld.process_instance_id = process_instance_model.id
|
tld.process_instance_id = process_instance_model.id
|
||||||
|
|
||||||
# we want this to be the fully qualified path to the process model including all group subcomponents
|
# we want this to be the fully qualified path to the process model including all group subcomponents
|
||||||
current_app.config[
|
current_app.config["THREAD_LOCAL_DATA"].process_model_identifier = (
|
||||||
"THREAD_LOCAL_DATA"
|
f"{process_instance_model.process_model_identifier}"
|
||||||
].process_model_identifier = f"{process_instance_model.process_model_identifier}"
|
)
|
||||||
|
|
||||||
self.process_instance_model = process_instance_model
|
self.process_instance_model = process_instance_model
|
||||||
self.process_model_service = ProcessModelService()
|
self.process_model_service = ProcessModelService()
|
||||||
@ -585,9 +585,9 @@ class ProcessInstanceProcessor:
|
|||||||
bpmn_subprocess_definition.bpmn_identifier
|
bpmn_subprocess_definition.bpmn_identifier
|
||||||
] = bpmn_process_definition_dict
|
] = bpmn_process_definition_dict
|
||||||
spiff_bpmn_process_dict["subprocess_specs"][bpmn_subprocess_definition.bpmn_identifier]["task_specs"] = {}
|
spiff_bpmn_process_dict["subprocess_specs"][bpmn_subprocess_definition.bpmn_identifier]["task_specs"] = {}
|
||||||
bpmn_subprocess_definition_bpmn_identifiers[
|
bpmn_subprocess_definition_bpmn_identifiers[bpmn_subprocess_definition.id] = (
|
||||||
bpmn_subprocess_definition.id
|
bpmn_subprocess_definition.bpmn_identifier
|
||||||
] = bpmn_subprocess_definition.bpmn_identifier
|
)
|
||||||
|
|
||||||
task_definitions = TaskDefinitionModel.query.filter(
|
task_definitions = TaskDefinitionModel.query.filter(
|
||||||
TaskDefinitionModel.bpmn_process_definition_id.in_( # type: ignore
|
TaskDefinitionModel.bpmn_process_definition_id.in_( # type: ignore
|
||||||
|
@ -591,7 +591,7 @@ class TestProcessApi(BaseTest):
|
|||||||
|
|
||||||
# get the results
|
# get the results
|
||||||
response = client.get(
|
response = client.get(
|
||||||
"/v1.0/processes/Level2/callers",
|
"/v1.0/processes/callers?bpmn_process_identifier=Level2",
|
||||||
headers=self.logged_in_headers(with_super_admin_user),
|
headers=self.logged_in_headers(with_super_admin_user),
|
||||||
)
|
)
|
||||||
assert response.json is not None
|
assert response.json is not None
|
||||||
|
@ -296,6 +296,7 @@ class TestAuthorizationService(BaseTest):
|
|||||||
("/process-instances/reports/*", "read"),
|
("/process-instances/reports/*", "read"),
|
||||||
("/process-instances/reports/*", "update"),
|
("/process-instances/reports/*", "update"),
|
||||||
("/processes", "read"),
|
("/processes", "read"),
|
||||||
|
("/processes/callers", "read"),
|
||||||
("/service-tasks", "read"),
|
("/service-tasks", "read"),
|
||||||
("/tasks/*", "create"),
|
("/tasks/*", "create"),
|
||||||
("/tasks/*", "delete"),
|
("/tasks/*", "delete"),
|
||||||
|
@ -168,7 +168,7 @@ export default function ProcessModelEditDiagram() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (processModel !== null) {
|
if (processModel !== null) {
|
||||||
HttpService.makeCallToBackend({
|
HttpService.makeCallToBackend({
|
||||||
path: `/processes/${processModel.primary_process_id}/callers`,
|
path: `/processes/callers?bpmn_process_identifier=${processModel.primary_process_id}`,
|
||||||
successCallback: setCallers,
|
successCallback: setCallers,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user