Add settings page with change password, fix terminal ws bug
Deploy Dashboard / deploy (push) Failing after 2m5s

This commit is contained in:
Gan, Jimmy
2026-02-19 17:29:03 +08:00
parent 4036292273
commit bf49e13e56
8 changed files with 240 additions and 14 deletions
+22 -10
View File
@@ -60,27 +60,39 @@ async def get_current_user_ws(token: str):
raise credentials_exception
return username
# TOTP Persistenceturn username
# TOTP Persistence
AUTH_FILE = config.VOLUME_ROOT + "/docker/nas-dashboard/auth.json"
import json, os
def load_totp_secret():
def _load_auth_data():
try:
import json
if os.path.exists(AUTH_FILE):
with open(AUTH_FILE, "r") as f:
data = json.load(f)
return data.get("totp_secret", "")
return json.load(f)
except Exception:
pass
return config.TOTP_SECRET
return {}
def save_totp_secret(secret: str):
import json
def _save_auth_data(data):
os.makedirs(os.path.dirname(AUTH_FILE), exist_ok=True)
with open(AUTH_FILE, "w") as f:
json.dump({"totp_secret": secret}, f)
json.dump(data, f)
def load_totp_secret():
return _load_auth_data().get("totp_secret", "") or config.TOTP_SECRET
def save_totp_secret(secret: str):
data = _load_auth_data()
data["totp_secret"] = secret
_save_auth_data(data)
def load_password_hash():
return _load_auth_data().get("password_hash", "") or config.ADMIN_PASSWORD_HASH
def save_password_hash(hashed: str):
data = _load_auth_data()
data["password_hash"] = hashed
_save_auth_data(data)
def verify_totp(token: str, secret: str = None):
if secret is None: