Upload db.py with huggingface_hub
Browse files
db.py
CHANGED
|
@@ -92,8 +92,10 @@ def init_db():
|
|
| 92 |
username TEXT NOT NULL UNIQUE,
|
| 93 |
display_name TEXT DEFAULT '',
|
| 94 |
password_hash TEXT NOT NULL,
|
|
|
|
| 95 |
role TEXT DEFAULT 'user',
|
| 96 |
-
created_at TEXT DEFAULT (datetime('now','localtime'))
|
|
|
|
| 97 |
);
|
| 98 |
|
| 99 |
CREATE INDEX IF NOT EXISTS idx_reports_patient ON reports(patient_id);
|
|
@@ -113,6 +115,8 @@ def init_db():
|
|
| 113 |
conn.execute("ALTER TABLE users ADD COLUMN display_name TEXT DEFAULT ''")
|
| 114 |
if 'password_plain' not in user_cols:
|
| 115 |
conn.execute("ALTER TABLE users ADD COLUMN password_plain TEXT DEFAULT ''")
|
|
|
|
|
|
|
| 116 |
|
| 117 |
# migrate reports table
|
| 118 |
report_cols = [r[1] for r in conn.execute('PRAGMA table_info(reports)').fetchall()]
|
|
@@ -338,7 +342,7 @@ def register_user(username, password, display_name=''):
|
|
| 338 |
if existing:
|
| 339 |
conn.close()
|
| 340 |
return False, '此資料已經存在,請直接登入'
|
| 341 |
-
conn.execute('INSERT INTO users (username, password_hash, password_plain, display_name) VALUES (?, ?, ?, ?)',
|
| 342 |
(username, hash_pw(password), password, display_name))
|
| 343 |
conn.commit()
|
| 344 |
conn.close()
|
|
@@ -362,7 +366,7 @@ def seed_default_users(users_dict, admin_user=None):
|
|
| 362 |
existing = conn.execute('SELECT id FROM users WHERE username=?', (username,)).fetchone()
|
| 363 |
if not existing:
|
| 364 |
role = 'admin' if username == admin_user else 'user'
|
| 365 |
-
conn.execute('INSERT INTO users (username, password_hash, password_plain, role) VALUES (?, ?, ?, ?)',
|
| 366 |
(username, hash_pw(password), password, role))
|
| 367 |
elif username == admin_user:
|
| 368 |
conn.execute('UPDATE users SET role = ? WHERE username = ?', ('admin', username))
|
|
@@ -403,6 +407,7 @@ def update_user_role(user_id, role):
|
|
| 403 |
backup_db()
|
| 404 |
conn = get_conn()
|
| 405 |
conn.execute('UPDATE users SET role=? WHERE id=?', (role, user_id))
|
|
|
|
| 406 |
conn.commit()
|
| 407 |
conn.close()
|
| 408 |
|
|
@@ -419,6 +424,7 @@ def update_user(user_id, display_name=None, username=None, password=None, role=N
|
|
| 419 |
(hash_pw(password), password, user_id))
|
| 420 |
if role:
|
| 421 |
conn.execute('UPDATE users SET role=? WHERE id=?', (role, user_id))
|
|
|
|
| 422 |
conn.commit()
|
| 423 |
conn.close()
|
| 424 |
|
|
|
|
| 92 |
username TEXT NOT NULL UNIQUE,
|
| 93 |
display_name TEXT DEFAULT '',
|
| 94 |
password_hash TEXT NOT NULL,
|
| 95 |
+
password_plain TEXT DEFAULT '',
|
| 96 |
role TEXT DEFAULT 'user',
|
| 97 |
+
created_at TEXT DEFAULT (datetime('now','localtime')),
|
| 98 |
+
edit_time TEXT DEFAULT (datetime('now','localtime'))
|
| 99 |
);
|
| 100 |
|
| 101 |
CREATE INDEX IF NOT EXISTS idx_reports_patient ON reports(patient_id);
|
|
|
|
| 115 |
conn.execute("ALTER TABLE users ADD COLUMN display_name TEXT DEFAULT ''")
|
| 116 |
if 'password_plain' not in user_cols:
|
| 117 |
conn.execute("ALTER TABLE users ADD COLUMN password_plain TEXT DEFAULT ''")
|
| 118 |
+
if 'edit_time' not in user_cols:
|
| 119 |
+
conn.execute("ALTER TABLE users ADD COLUMN edit_time TEXT")
|
| 120 |
|
| 121 |
# migrate reports table
|
| 122 |
report_cols = [r[1] for r in conn.execute('PRAGMA table_info(reports)').fetchall()]
|
|
|
|
| 342 |
if existing:
|
| 343 |
conn.close()
|
| 344 |
return False, '此資料已經存在,請直接登入'
|
| 345 |
+
conn.execute('INSERT INTO users (username, password_hash, password_plain, display_name, edit_time) VALUES (?, ?, ?, ?, datetime("now","localtime"))',
|
| 346 |
(username, hash_pw(password), password, display_name))
|
| 347 |
conn.commit()
|
| 348 |
conn.close()
|
|
|
|
| 366 |
existing = conn.execute('SELECT id FROM users WHERE username=?', (username,)).fetchone()
|
| 367 |
if not existing:
|
| 368 |
role = 'admin' if username == admin_user else 'user'
|
| 369 |
+
conn.execute('INSERT INTO users (username, password_hash, password_plain, role, edit_time) VALUES (?, ?, ?, ?, datetime("now","localtime"))',
|
| 370 |
(username, hash_pw(password), password, role))
|
| 371 |
elif username == admin_user:
|
| 372 |
conn.execute('UPDATE users SET role = ? WHERE username = ?', ('admin', username))
|
|
|
|
| 407 |
backup_db()
|
| 408 |
conn = get_conn()
|
| 409 |
conn.execute('UPDATE users SET role=? WHERE id=?', (role, user_id))
|
| 410 |
+
conn.execute("UPDATE users SET edit_time=datetime('now','localtime') WHERE id=?", (user_id,))
|
| 411 |
conn.commit()
|
| 412 |
conn.close()
|
| 413 |
|
|
|
|
| 424 |
(hash_pw(password), password, user_id))
|
| 425 |
if role:
|
| 426 |
conn.execute('UPDATE users SET role=? WHERE id=?', (role, user_id))
|
| 427 |
+
conn.execute("UPDATE users SET edit_time=datetime('now','localtime') WHERE id=?", (user_id,))
|
| 428 |
conn.commit()
|
| 429 |
conn.close()
|
| 430 |
|