From 7bd0b6ea290735a35b433b70d12ef156777f39be Mon Sep 17 00:00:00 2001 From: Maxim Podosochnyy <podosochnyy@perx.ru> Date: Wed, 26 Mar 2025 15:07:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=84=D0=BB=D0=B0=D0=B3=D0=B8=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=BF=D1=83=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20/=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20item'?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/extension_service/servicer.py | 3 ++ perxis/extensions/extension_setup.py | 41 +++++++------------------- 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/examples/extension_service/servicer.py b/examples/extension_service/servicer.py index f40984e..79aa7e5 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 918f201..3bfa04e 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: -- GitLab