ligbox-ops-platform/deploy/vm112-spec022/delete_carbonio_account.py
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

15 lines
792 B
Python

def delete_carbonio_account(email: str) -> dict:
"""Remove uma conta Carbonio (zmprov da) — Spec 022."""
email = email.lower().strip()
if "@" not in email:
raise ValueError("e-mail inválido")
domain = email.split("@", 1)[1]
assert_purge_allowed(domain)
if not carbonio.account_exists(email):
return {"ok": True, "email": email, "message": "Conta já não existia", "skipped": True}
code, out, err = carbonio._zmprov_run("da", email, log_cmd=True)
if code != 0 and not carbonio._is_missing_account(err, out):
raise carbonio.CarbonioError(err or out or f"zmprov da falhou para {email}")
carbonio.invalidate_domain_cache(domain)
return {"ok": True, "email": email, "message": f"Conta {email} removida do Carbonio", "rc": code}