Исправление создания пароля администратора

This commit is contained in:
2025-12-19 21:49:44 +03:00
parent 719631158d
commit e64d3da7f4
4 changed files with 16 additions and 6 deletions
+4
View File
@@ -1,3 +1,7 @@
# DEFAULT_ADMIN_USERNAME = "admin"
# DEFAULT_ADMIN_EMAIL = "admin@example.com"
# DEFAULT_ADMIN_PASSWORD = "password-is-generated-randomly-on-first-launch"
POSTGRES_HOST = "localhost" POSTGRES_HOST = "localhost"
POSTGRES_PORT = "5432" POSTGRES_PORT = "5432"
POSTGRES_USER = "postgres" POSTGRES_USER = "postgres"
+11 -4
View File
@@ -25,7 +25,7 @@ REFRESH_TOKEN_EXPIRE_DAYS = int(os.getenv("REFRESH_TOKEN_EXPIRE_DAYS", "7"))
logger = get_logger("uvicorn") logger = get_logger("uvicorn")
# OAuth2 схема # OAuth2 схема
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/token") oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/token")
# Хэширование паролей # Хэширование паролей
pwd_context = CryptContext(schemes=["argon2"], deprecated="auto") pwd_context = CryptContext(schemes=["argon2"], deprecated="auto")
@@ -177,18 +177,18 @@ def seed_admin(session: Session, admin_role: Role) -> User | None:
).all() ).all()
if existing_admins: if existing_admins:
logger.info(f"[*] Admin already exists: {existing_admins[0].username}") logger.info(f"[=] Admin already exists: {existing_admins[0].username}, skipping creation")
return None return None
admin_username = os.getenv("DEFAULT_ADMIN_USERNAME", "admin") admin_username = os.getenv("DEFAULT_ADMIN_USERNAME", "admin")
admin_email = os.getenv("DEFAULT_ADMIN_EMAIL", "admin@example.com") admin_email = os.getenv("DEFAULT_ADMIN_EMAIL", "admin@example.com")
admin_password = os.getenv("DEFAULT_ADMIN_PASSWORD") admin_password = os.getenv("DEFAULT_ADMIN_PASSWORD")
generated = False
if not admin_password: if not admin_password:
import secrets import secrets
admin_password = secrets.token_urlsafe(16) admin_password = secrets.token_urlsafe(16)
logger.warning(f"[!] Generated admin password: {admin_password}") generated = True
logger.warning("[!] Please save this password and set DEFAULT_ADMIN_PASSWORD env var")
admin_user = User( admin_user = User(
username=admin_username, username=admin_username,
@@ -205,6 +205,13 @@ def seed_admin(session: Session, admin_role: Role) -> User | None:
session.refresh(admin_user) session.refresh(admin_user)
logger.info(f"[+] Created admin user: {admin_username}") logger.info(f"[+] Created admin user: {admin_username}")
if generated:
logger.warning("=" * 50)
logger.warning(f"[!] GENERATED ADMIN PASSWORD: {admin_password}")
logger.warning("[!] Save this password! It won't be shown again!")
logger.warning("=" * 50)
return admin_user return admin_user
+1 -1
View File
@@ -60,7 +60,7 @@ if not USER or not PASSWORD or not DATABASE or not HOST:
raise ValueError("Missing environment variables") raise ValueError("Missing environment variables")
POSTGRES_DATABASE_URL = f"postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}" POSTGRES_DATABASE_URL = f"postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}"
engine = create_engine(POSTGRES_DATABASE_URL, echo=True, future=True) engine = create_engine(POSTGRES_DATABASE_URL, echo=False, future=True)
def get_session(): def get_session():
-1
View File
@@ -6,7 +6,6 @@ from sqlmodel import SQLModel
from library_service.settings import POSTGRES_DATABASE_URL from library_service.settings import POSTGRES_DATABASE_URL
print(POSTGRES_DATABASE_URL)
# this is the Alembic Config object, which provides # this is the Alembic Config object, which provides
# access to the values within the .ini file in use. # access to the values within the .ini file in use.