feat: учётки стенда заводятся при старте, пароль совпадает с логином

This commit is contained in:
gglamer 2026-09-29 12:18:17 +00:00
commit a3224cb63a
4 changed files with 10 additions and 11 deletions

View file

@ -2,10 +2,11 @@
Без входа система не работает (lct-23), а заводить первого администратора
руками в базе — плохой первый шаг для того, кто разворачивает стенд.
Скрипт создаёт по одной записи на роль и печатает пароли один раз.
Скрипт создаёт по одной записи на роль; compose запускает его при каждом
старте backend, существующие записи он не трогает.
Пароли случайные: зашитый в репозиторий «admin/admin» переживёт сдачу
и уедет в реальный класс.
Пароль совпадает с логином: стенд учебный, его поднимают на показе и в классе,
и учётки должны быть известны заранее, без поиска строки в логе контейнера.
make users создать недостающие
make users force=1 пересоздать пароли существующих
@ -13,7 +14,6 @@
import asyncio
import os
import secrets
import sys
from pathlib import Path
@ -45,7 +45,7 @@ async def main() -> int:
print(f" {login}: уже есть")
continue
password = secrets.token_urlsafe(9)
password = login
if user is None:
user = User(login=login, full_name=full_name, role=role.value, service=service)
db.add(user)
@ -67,10 +67,9 @@ async def main() -> int:
print("все учётные записи на месте (пересоздать: make users force=1)")
return 0
print("\nЗаписано. Пароли показываются один раз:\n")
print("\nЗаписано, пароль совпадает с логином:\n")
for login, password in created:
print(f" {login:10} {password}")
print("\nСменить пароль можно только пересозданием: экран смены пароля — lct-24.")
return 0