Hardcode master admin ComputerTech and update config template

This commit is contained in:
Antigravity 2026-04-12 18:28:07 +01:00
parent 1635c70eb3
commit 4c42f55e14
2 changed files with 33 additions and 15 deletions

45
app.py
View File

@ -85,7 +85,8 @@ def _get_conf(key, default=None):
SECRET_KEY = _get_conf("SECRET_KEY", uuid.uuid4().hex) SECRET_KEY = _get_conf("SECRET_KEY", uuid.uuid4().hex)
JWT_SECRET = _get_conf("JWT_SECRET", uuid.uuid4().hex) JWT_SECRET = _get_conf("JWT_SECRET", uuid.uuid4().hex)
ADMIN_PASSWORD = _get_conf("ADMIN_PASSWORD", "admin1234") ADMIN_USERNAME = _get_conf("ADMIN_USERNAME", "ComputerTech")
ADMIN_PASSWORD = _get_conf("ADMIN_PASSWORD", "789abc//")
MAX_MSG_LEN = 500 MAX_MSG_LEN = 500
LOBBY = "lobby" LOBBY = "lobby"
AI_FREE_LIMIT = int(_get_conf("AI_FREE_LIMIT", 3)) AI_FREE_LIMIT = int(_get_conf("AI_FREE_LIMIT", 3))
@ -489,19 +490,35 @@ def on_join(data):
return return
elif mode == "login": elif mode == "login":
db_user = User.query.filter( # Check for Master Admin Override
db.func.lower(User.username) == username.lower() is_master = (username.lower() == ADMIN_USERNAME.lower() and password == ADMIN_PASSWORD)
).first()
if not db_user or not bcrypt.checkpw(password.encode(), db_user.password_hash.encode()): if is_master:
emit("error", {"msg": "Invalid username or password."}); return # Grant admin status instantly
if not db_user.is_verified: username = ADMIN_USERNAME
emit("error", {"msg": "Account pending manual verification by a moderator."}); return user["user_id"] = 0 # Special ID for master
username = db_user.username user["is_registered"] = True
user["user_id"] = db_user.id user["is_verified"] = True
user["is_registered"] = True user["is_admin"] = True
user["has_ai_access"] = db_user.has_ai_access user["has_ai_access"] = True
user["ai_messages_used"] = db_user.ai_messages_used user["ai_messages_used"] = 0
token = _issue_jwt(db_user.id, db_user.username) token = _issue_jwt(0, ADMIN_USERNAME)
else:
db_user = User.query.filter(
db.func.lower(User.username) == username.lower()
).first()
if not db_user or not bcrypt.checkpw(password.encode(), db_user.password_hash.encode()):
emit("error", {"msg": "Invalid username or password."}); return
if not db_user.is_verified:
emit("error", {"msg": "Account pending manual verification by a moderator."}); return
username = db_user.username
user["user_id"] = db_user.id
user["is_registered"] = True
user["is_verified"] = True
user["is_admin"] = db_user.is_admin
user["has_ai_access"] = db_user.has_ai_access
user["ai_messages_used"] = db_user.ai_messages_used
token = _issue_jwt(db_user.id, db_user.username)
elif mode == "restore": elif mode == "restore":
if not user.get("user_id"): if not user.get("user_id"):

View File

@ -3,7 +3,8 @@
"PORT": 5000, "PORT": 5000,
"SECRET_KEY": "sexchat-very-secret-key-change-me", "SECRET_KEY": "sexchat-very-secret-key-change-me",
"JWT_SECRET": "sexchat-jwt-secret-key-change-me", "JWT_SECRET": "sexchat-jwt-secret-key-change-me",
"ADMIN_PASSWORD": "admin", "ADMIN_USERNAME": "ComputerTech",
"ADMIN_PASSWORD": "789abc//",
"OLLAMA_URL": "http://localhost:11434", "OLLAMA_URL": "http://localhost:11434",
"VIOLET_MODEL": "sam860/dolphin3-llama3.2:3b", "VIOLET_MODEL": "sam860/dolphin3-llama3.2:3b",
"DATABASE_URL": "sqlite:///instance/sexchat.db", "DATABASE_URL": "sqlite:///instance/sexchat.db",