Fix: Samba MacOS toggle deaktivieren löscht fruit: Keys via delparm
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 <noreply@anthropic.com>
This commit is contained in:
@@ -251,8 +251,20 @@ class SharesManager:
|
|||||||
return {"parameters": []}
|
return {"parameters": []}
|
||||||
|
|
||||||
def set_samba_global_config(self, parameters: Dict[str, str]) -> bool:
|
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:
|
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():
|
for key, value in parameters.items():
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
['/usr/bin/net', 'conf', 'setparm', 'global', key, '--', value],
|
['/usr/bin/net', 'conf', 'setparm', 'global', key, '--', value],
|
||||||
|
|||||||
Reference in New Issue
Block a user