mirror of
https://github.com/wowlikon/LiB.git
synced 2026-02-04 12:31:09 +00:00
Исправление создания пароля администратора
This commit is contained in:
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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():
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user