From ec2c62a5299c101dc8973b1fe787138066ce5dbe Mon Sep 17 00:00:00 2001 From: Codex Date: Thu, 7 May 2026 19:09:07 +0800 Subject: [PATCH] fix: preserve employee roles on login sync --- daily_report/db.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/daily_report/db.py b/daily_report/db.py index 6938de3..6791eee 100644 --- a/daily_report/db.py +++ b/daily_report/db.py @@ -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, ), )