diff --git a/examples/extension_service/servicer.py b/examples/extension_service/servicer.py index f40984ed2a2c59996101f40f42ea6077b864377e..79aa7e5dee17ad97404b1f96034814b7c221b17c 100644 --- a/examples/extension_service/servicer.py +++ b/examples/extension_service/servicer.py @@ -87,6 +87,9 @@ class Servicer(ExtensionService): ), SyncPolicyItem( collection_id="test_collection", + # Запрет на изменение или удаление записи политики синхронизации + with_update=False, + with_delete=False, ), Item( collection_id="secrets", diff --git a/perxis/extensions/extension_setup.py b/perxis/extensions/extension_setup.py index 918f20100dad71243392ec8a9028d8dd71b1a249..3bfa04ec060501c855bf05400cf38cc5f2c08489 100644 --- a/perxis/extensions/extension_setup.py +++ b/perxis/extensions/extension_setup.py @@ -584,19 +584,12 @@ class ExtensionSetup: ) for item in self.items: - try: - if item.rules: - all_rules_satisfied = all( - [ - await rule(item, space_id, env_id) - for rule - in item.rules - ] - ) + all_rules_satisfied = await item.all_rules_is_satisfied(space_id, env_id) - if not all_rules_satisfied: - continue + if not all_rules_satisfied: + continue + try: message = await wrapper.find( collection_id=item.collection_id, env_id=env_id, @@ -624,17 +617,10 @@ class ExtensionSetup: ) for item in self.items: - if item.rules: - all_rules_satisfied = all( - [ - await rule(item, space_id, env_id) - for rule - in item.rules - ] - ) + all_rules_satisfied = await item.all_rules_is_satisfied(space_id, env_id) - if not all_rules_satisfied: - continue + if not all_rules_satisfied: + continue try: message = await wrapper.find( @@ -714,17 +700,10 @@ class ExtensionSetup: ) for item in self.items: - if item.rules: - all_rules_satisfied = all( - [ - await rule(item, space_id, env_id) - for rule - in item.rules - ] - ) + all_rules_satisfied = await item.all_rules_is_satisfied(space_id, env_id) - if not all_rules_satisfied: - continue + if not all_rules_satisfied: + continue # Если установлен запрет на удаление item'ов if not item.with_delete: