comms: fix synapse seed booleans

This commit is contained in:
Brad Stein 2026-01-08 05:00:58 -03:00
parent 28bcf716d0
commit c05cb414aa

View File

@ -2,7 +2,7 @@
apiVersion: batch/v1
kind: Job
metadata:
name: synapse-user-seed-1
name: synapse-user-seed-2
namespace: comms
spec:
backoffLimit: 1
@ -56,14 +56,18 @@ spec:
def get_cols(cur):
cur.execute(
"""
SELECT column_name, is_nullable, column_default
SELECT column_name, is_nullable, column_default, data_type
FROM information_schema.columns
WHERE table_schema = 'public' AND table_name = 'users'
"""
)
cols = {}
for name, is_nullable, default in cur.fetchall():
cols[name] = {"nullable": is_nullable == "YES", "default": default}
for name, is_nullable, default, data_type in cur.fetchall():
cols[name] = {
"nullable": is_nullable == "YES",
"default": default,
"type": data_type,
}
return cols
def upsert_user(cur, cols, user_id, password, admin):
@ -73,14 +77,18 @@ spec:
"password_hash": bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode(),
"creation_ts": now_ms,
}
if "admin" in cols:
values["admin"] = admin
if "deactivated" in cols:
values["deactivated"] = False
if "shadow_banned" in cols:
values["shadow_banned"] = False
if "is_guest" in cols:
values["is_guest"] = False
def add_flag(name, flag):
if name not in cols:
return
if cols[name]["type"] in ("smallint", "integer"):
values[name] = int(flag)
else:
values[name] = bool(flag)
add_flag("admin", admin)
add_flag("deactivated", False)
add_flag("shadow_banned", False)
add_flag("is_guest", False)
columns = list(values.keys())
placeholders = ", ".join(["%s"] * len(columns))