Adds the admin backend foundation: AuditLog + Setting models/migration, an admin-only dashboard with KPI cards, and user management (search, ban/suspend/activate, tier override, trust adjust) with audit logging on every write action. Smoke suite extended to 64 checks.
19 lines
492 B
Python
19 lines
492 B
Python
"""Admin-editable runtime settings, stored as key/JSON-value rows."""
|
|
from app.extensions import db
|
|
from app.models.setting import Setting
|
|
|
|
|
|
def get_setting(key: str, default=None):
|
|
row = db.session.get(Setting, key)
|
|
return row.value if row is not None else default
|
|
|
|
|
|
def set_setting(key: str, value):
|
|
row = db.session.get(Setting, key)
|
|
if row is None:
|
|
row = Setting(key=key, value=value)
|
|
db.session.add(row)
|
|
else:
|
|
row.value = value
|
|
return row
|