plokmii commited on
Commit
ba773cc
·
verified ·
1 Parent(s): 31f4210

Upload db.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. db.py +9 -3
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