fix: bincio init always sets private:true even if index.json already exists

This commit is contained in:
Davide Scaini
2026-04-10 15:26:11 +02:00
parent 27f94cf581
commit 7088b94a87
+13 -3
View File
@@ -55,7 +55,19 @@ def init(data_dir: str, handle: str, password: str, display_name: str, name: str
from datetime import datetime, timezone from datetime import datetime, timezone
root_index = dd / "index.json" root_index = dd / "index.json"
if not root_index.exists(): if root_index.exists():
# Preserve existing manifest but always enforce private: True for a multi-user instance.
manifest = json.loads(root_index.read_text())
instance = manifest.setdefault("instance", {})
if not instance.get("private"):
instance["private"] = True
if name:
instance["name"] = name
root_index.write_text(json.dumps(manifest, indent=2))
console.print(" [green]✓[/green] root index.json updated (private: true)")
else:
console.print(" [yellow]·[/yellow] root index.json already private — skipping")
else:
manifest = { manifest = {
"bas_version": "1.0", "bas_version": "1.0",
"instance": {"name": name or "BincioActivity", "private": True}, "instance": {"name": name or "BincioActivity", "private": True},
@@ -65,8 +77,6 @@ def init(data_dir: str, handle: str, password: str, display_name: str, name: str
} }
root_index.write_text(json.dumps(manifest, indent=2)) root_index.write_text(json.dumps(manifest, indent=2))
console.print(" [green]✓[/green] root index.json manifest written") console.print(" [green]✓[/green] root index.json manifest written")
else:
console.print(" [yellow]·[/yellow] root index.json already exists — skipping")
# ── User limit ──────────────────────────────────────────────────────────── # ── User limit ────────────────────────────────────────────────────────────
if max_users > 0: if max_users > 0: