add temporary access when database is empty
This commit is contained in:
@@ -25,7 +25,7 @@ class LoginRequest(BaseModel):
|
|||||||
)
|
)
|
||||||
def login(request: LoginRequest) -> Token:
|
def login(request: LoginRequest) -> Token:
|
||||||
logger.info(f"login with {request.email}")
|
logger.info(f"login with {request.email}")
|
||||||
user = authenticate_user(request.email, request.password) # type: ignore
|
user = authenticate_user(request.email, request.password)
|
||||||
scopes = ["admin", "read"]
|
scopes = ["admin", "read"]
|
||||||
if not user:
|
if not user:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from pydantic import ValidationError
|
|||||||
from src.core.config import settings
|
from src.core.config import settings
|
||||||
from src.core.log_conf import logger
|
from src.core.log_conf import logger
|
||||||
from src.db.models.admin import Profile
|
from src.db.models.admin import Profile
|
||||||
from src.db.repository.admin import get_profile
|
from src.db.repository.admin import get_profile, is_database_empty
|
||||||
from src.db.session import SessionLocal
|
from src.db.session import SessionLocal
|
||||||
from src.schema.admin import ProfileModel, TokenData
|
from src.schema.admin import ProfileModel, TokenData
|
||||||
|
|
||||||
@@ -57,11 +57,17 @@ def authenticate_user(username: str, password: str) -> Optional[Profile]:
|
|||||||
user = get_profile(username=username, db=db)
|
user = get_profile(username=username, db=db)
|
||||||
logger.debug(user)
|
logger.debug(user)
|
||||||
if not user:
|
if not user:
|
||||||
|
if is_database_empty(db):
|
||||||
|
logger.info("database is empty, use temporary access")
|
||||||
|
user = Profile()
|
||||||
|
user.email = "init_user@thpeetz.de"
|
||||||
|
return user
|
||||||
return None
|
return None
|
||||||
if bcrypt.checkpw(password.encode(), user.password.encode()):
|
|
||||||
print("User successful authenticated")
|
|
||||||
else:
|
else:
|
||||||
logger.info("Authentication failed!")
|
if bcrypt.checkpw(password.encode(), user.password.encode()):
|
||||||
|
print("User successful authenticated")
|
||||||
|
else:
|
||||||
|
logger.info("Authentication failed!")
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,3 +8,7 @@ from src.db.models.admin import Profile
|
|||||||
def get_profile(username: AnyStr, db: Session) -> Optional[Profile]:
|
def get_profile(username: AnyStr, db: Session) -> Optional[Profile]:
|
||||||
profile = db.query(Profile).filter(Profile.email == username).first()
|
profile = db.query(Profile).filter(Profile.email == username).first()
|
||||||
return profile
|
return profile
|
||||||
|
|
||||||
|
def is_database_empty(db: Session) -> bool:
|
||||||
|
profiles = db.query(Profile).all()
|
||||||
|
return len(profiles) == 0
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ def create_new_video(video: AddLinkForm, db: Session) -> MediaVideo:
|
|||||||
print(video.url)
|
print(video.url)
|
||||||
media_video = MediaVideo()
|
media_video = MediaVideo()
|
||||||
media_video.id = str(uuid.uuid4())
|
media_video.id = str(uuid.uuid4())
|
||||||
media_video.url = video.url # type: ignore
|
media_video.url = video.url
|
||||||
media_video.created_date = datetime.now()
|
media_video.created_date = datetime.now()
|
||||||
media_video.last_modified_date = datetime.now()
|
media_video.last_modified_date = datetime.now()
|
||||||
media_video.review = True # type: ignore
|
media_video.review = True
|
||||||
media_video.should_download = True # type: ignore
|
media_video.should_download = True
|
||||||
db.add(media_video)
|
db.add(media_video)
|
||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(media_video)
|
db.refresh(media_video)
|
||||||
@@ -27,7 +27,7 @@ def create_new_mediafile(link: str, db: Session) -> MediaFile:
|
|||||||
logger.info("create MediaFile with url {link}")
|
logger.info("create MediaFile with url {link}")
|
||||||
media_file: MediaFile = MediaFile()
|
media_file: MediaFile = MediaFile()
|
||||||
media_file.id = str(uuid.uuid4())
|
media_file.id = str(uuid.uuid4())
|
||||||
media_file.url = link # type: ignore
|
media_file.url = link
|
||||||
media_file.created_date = datetime.now()
|
media_file.created_date = datetime.now()
|
||||||
media_file.last_modified_date = datetime.now()
|
media_file.last_modified_date = datetime.now()
|
||||||
media_file.version = 0
|
media_file.version = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user