fix permissions for getting extension process models w/ burnettk
This commit is contained in:
parent
b3851b5a2d
commit
abd69ae047
|
@ -211,6 +211,7 @@ class ProcessModelService(FileSystemService):
|
||||||
" filter_runnable_as_extension"
|
" filter_runnable_as_extension"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# get the full list (before we filter it by the ones you are allowed to start)
|
||||||
process_models = cls.get_process_models(
|
process_models = cls.get_process_models(
|
||||||
process_group_id=process_group_id, recursive=recursive, include_files=include_files
|
process_group_id=process_group_id, recursive=recursive, include_files=include_files
|
||||||
)
|
)
|
||||||
|
@ -225,16 +226,27 @@ class ProcessModelService(FileSystemService):
|
||||||
if filter_runnable_as_extension:
|
if filter_runnable_as_extension:
|
||||||
permission_to_check = "create"
|
permission_to_check = "create"
|
||||||
permission_base_uri = "/v1.0/extensions"
|
permission_base_uri = "/v1.0/extensions"
|
||||||
|
process_model_identifiers = [
|
||||||
|
p.id.replace(f"{current_app.config['SPIFFWORKFLOW_BACKEND_EXTENSIONS_PROCESS_MODEL_PREFIX']}/", "")
|
||||||
|
for p in process_models
|
||||||
|
]
|
||||||
|
|
||||||
|
# these are the ones (identifiers, at least) you are allowed to start
|
||||||
permitted_process_model_identifiers = cls.process_model_identifiers_with_permission_for_user(
|
permitted_process_model_identifiers = cls.process_model_identifiers_with_permission_for_user(
|
||||||
user=user,
|
user=user,
|
||||||
permission_to_check=permission_to_check,
|
permission_to_check=permission_to_check,
|
||||||
permission_base_uri=permission_base_uri,
|
permission_base_uri=permission_base_uri,
|
||||||
process_model_identifiers=process_model_identifiers,
|
process_model_identifiers=process_model_identifiers,
|
||||||
)
|
)
|
||||||
|
|
||||||
permitted_process_models = []
|
permitted_process_models = []
|
||||||
for process_model in process_models:
|
for process_model in process_models:
|
||||||
if process_model.id in permitted_process_model_identifiers:
|
process_model_identifier = process_model.id
|
||||||
|
if filter_runnable_as_extension:
|
||||||
|
process_model_identifier = process_model.id.replace(
|
||||||
|
f"{current_app.config['SPIFFWORKFLOW_BACKEND_EXTENSIONS_PROCESS_MODEL_PREFIX']}/", ""
|
||||||
|
)
|
||||||
|
if process_model_identifier in permitted_process_model_identifiers:
|
||||||
permitted_process_models.append(process_model)
|
permitted_process_models.append(process_model)
|
||||||
return permitted_process_models
|
return permitted_process_models
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue