CODEX revised with following function: 1. GDS building, 2. different user group with different authority.

This commit is contained in:
2026-05-28 20:35:49 +08:00
parent e6e9e13cf2
commit 1215bf978a
25 changed files with 439 additions and 196 deletions
+10 -6
View File
@@ -48,6 +48,7 @@ def init_db():
"created_at": "ALTER TABLE users ADD COLUMN created_at TEXT",
"credits": "ALTER TABLE users ADD COLUMN credits INTEGER NOT NULL DEFAULT 0",
"occupation": "ALTER TABLE users ADD COLUMN occupation TEXT NOT NULL DEFAULT 'intern'",
"user_group": "ALTER TABLE users ADD COLUMN user_group TEXT NOT NULL DEFAULT 'user'",
}
for column, statement in migrations.items():
if column not in existing_columns:
@@ -55,14 +56,17 @@ def init_db():
now = datetime.utcnow().strftime("%Y-%m-%d")
cursor.execute("UPDATE users SET created_at = ? WHERE created_at IS NULL OR created_at = ''", (now,))
cursor.execute("UPDATE users SET user_group = 'manager' WHERE username = 'admin'")
cursor.execute("UPDATE users SET user_group = 'developers' WHERE username = 'engineer'")
cursor.execute("UPDATE users SET user_group = 'user' WHERE user_group IS NULL OR user_group = ''")
# Insert default users for local multi-account development.
cursor.execute("SELECT * FROM users WHERE username = 'admin'")
if not cursor.fetchone():
test_hash = generate_password_hash("123456")
cursor.execute(
"INSERT INTO users (username, password_hash, created_at, credits, occupation) VALUES (?, ?, ?, ?, ?)",
("admin", test_hash, now, 0, "principle engineer")
"INSERT INTO users (username, password_hash, created_at, credits, occupation, user_group) VALUES (?, ?, ?, ?, ?, ?)",
("admin", test_hash, now, 0, "principle engineer", "manager")
)
print("Test user created. Username: admin | Password: 123456")
@@ -70,8 +74,8 @@ def init_db():
if not cursor.fetchone():
test_hash = generate_password_hash("123456")
cursor.execute(
"INSERT INTO users (username, password_hash, created_at, credits, occupation) VALUES (?, ?, ?, ?, ?)",
("engineer", test_hash, now, 0, "junior engineer")
"INSERT INTO users (username, password_hash, created_at, credits, occupation, user_group) VALUES (?, ?, ?, ?, ?, ?)",
("engineer", test_hash, now, 0, "junior engineer", "developers")
)
print("Second test user created. Username: engineer | Password: 123456")
@@ -81,7 +85,7 @@ def init_db():
def get_user(username):
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT id, username, password_hash FROM users WHERE username = ?", (username,))
cursor.execute("SELECT id, username, password_hash, user_group FROM users WHERE username = ?", (username,))
user = cursor.fetchone()
conn.close()
return user
@@ -90,7 +94,7 @@ def get_user_profile(user_id):
conn = connect_db()
cursor = conn.cursor()
cursor.execute(
"SELECT id, username, created_at, credits, occupation FROM users WHERE id = ?",
"SELECT id, username, created_at, credits, occupation, user_group FROM users WHERE id = ?",
(user_id,)
)
user = cursor.fetchone()