feat(settings): per-user language preference and panel improvements

Store UI language per user (users.language column, migration 26).
Language selector moves from Panel tab to Profile tab — each account
picks its own language, saved to DB and applied via i18n.changeLanguage()
on save so the interface switches immediately.

Panel tab: panel_name read-only (falls back to env PANEL_NAME),
log_retention_days field exposed in UI, language selector removed.
Panel API accepts panel_name in PUT so it can be overridden in DB
without touching the env var.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 08:47:18 +05:00
parent 4451b3e45a
commit 9ced08b88c
6 changed files with 38 additions and 2 deletions

View File

@@ -53,6 +53,9 @@ class User(Base):
# SSH Public Key for VM/LXC deployment
ssh_public_key = Column(Text, nullable=True)
# UI language preference (ru/en)
language = Column(String(10), nullable=False, server_default='ru')
# Security fields
failed_login_attempts = Column(Integer, default=0, nullable=False)