From fd40c2e8994b3910d01ede1b682869915734cb88 Mon Sep 17 00:00:00 2001 From: Patrick Date: Fri, 5 Jun 2026 16:06:46 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20Samba=20MacOS=20toggle=20deaktivieren=20?= =?UTF-8?q?l=C3=B6scht=20fruit:=20Keys=20via=20delparm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit net conf setparm kann Keys nicht entfernen. Beim Deaktivieren blieben fruit:* Keys in der Registry erhalten. Jetzt werden Keys die im neuen Dict fehlen via net conf delparm gelöscht. Co-Authored-By: Claude Sonnet 4.6 --- backend/services/shares.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/backend/services/shares.py b/backend/services/shares.py index dd697c1..f58a799 100644 --- a/backend/services/shares.py +++ b/backend/services/shares.py @@ -251,8 +251,20 @@ class SharesManager: return {"parameters": []} def set_samba_global_config(self, parameters: Dict[str, str]) -> bool: - """Update Samba global configuration parameters using 'net conf setparm'""" + """Update Samba global configuration parameters using 'net conf setparm/delparm'""" try: + current = self.get_samba_global_config() + current_keys = {p["key"] for p in current.get("parameters", [])} + new_keys = set(parameters.keys()) + + # Delete keys that were removed + for key in current_keys - new_keys: + subprocess.run( + ['/usr/bin/net', 'conf', 'delparm', 'global', key], + capture_output=True, text=True, timeout=10 + ) + + # Set/update remaining keys for key, value in parameters.items(): result = subprocess.run( ['/usr/bin/net', 'conf', 'setparm', 'global', key, '--', value],