fix: preserve employee roles on login sync

This commit is contained in:
Codex 2026-05-07 19:09:07 +08:00
parent 92adf268b6
commit ec2c62a529

View File

@ -68,6 +68,13 @@ class Database:
def upsert_employees(self, employees: list[dict[str, Any]]) -> None:
with self._lock, self.connection:
for employee in employees:
role = employee.get("role")
if role is None:
existing = self.connection.execute(
"SELECT role FROM employees WHERE feishu_user_id = ?",
(employee["feishu_user_id"],),
).fetchone()
role = existing["role"] if existing else "staff"
self.connection.execute(
"""
INSERT INTO employees (feishu_user_id, name, department, manager, role, active, updated_at)
@ -85,7 +92,7 @@ class Database:
employee["name"],
employee.get("department", ""),
employee.get("manager", ""),
employee.get("role", "staff"),
role,
0 if employee.get("active") is False else 1,
),
)