Add DB version with alimbic and add log system
This commit is contained in:
@ -3,9 +3,10 @@ from fastapi import APIRouter, Depends, HTTPException, Response
|
||||
|
||||
from fastapi.encoders import jsonable_encoder
|
||||
from sqlalchemy.orm import Session
|
||||
from fuware.core.config import get_app_settings
|
||||
from fuware.core.security.hasher import get_hasher
|
||||
from fuware.db.db_setup import generate_session
|
||||
from fuware.schemas import ReturnValue, PrivateUser, UserRequest
|
||||
from fuware.schemas import ReturnValue, UserRequest
|
||||
from fuware.schemas.user.user import UserCreate
|
||||
from fuware.services import UserService
|
||||
|
||||
@ -13,6 +14,7 @@ from fuware.services import UserService
|
||||
public_router = APIRouter(tags=["Users: Authentication"])
|
||||
user_service = UserService()
|
||||
hasher = get_hasher()
|
||||
settings = get_app_settings()
|
||||
|
||||
@public_router.put('/register')
|
||||
def register_user(user: UserCreate, db: Session = Depends(generate_session)) -> ReturnValue[Any]:
|
||||
@ -22,16 +24,15 @@ def register_user(user: UserCreate, db: Session = Depends(generate_session)) ->
|
||||
user_return = user_service.create(db=db, user=user)
|
||||
return ReturnValue(status=200, data=jsonable_encoder(user_return))
|
||||
|
||||
# @public_router.post('/login', response_model=ReturnValue[PrivateUser])
|
||||
@public_router.post('/login', response_model=ReturnValue[Any])
|
||||
def user_login(user: UserRequest, response: Response) -> ReturnValue[Any]:
|
||||
def user_login(user: UserRequest, response: Response, db: Session = Depends(generate_session)) -> ReturnValue[Any]:
|
||||
db_user = user_service.get_by_username(username=user.username)
|
||||
if not db_user:
|
||||
raise HTTPException(status_code=401, detail="Your username or password input is wrong!")
|
||||
if not hasher.verify(password=user.password, hashed=db_user.password):
|
||||
raise HTTPException(status_code=401, detail="Your username or password input is wrong!")
|
||||
if db_user.is_lock is True:
|
||||
raise HTTPException(status_code=401, detail="Your Account is banned")
|
||||
# cookieEncode = encryptString(user.username + ',' + user.password)
|
||||
# response.set_cookie(key=COOKIE_KEY, value=cookieEncode.decode('utf-8'))
|
||||
raise HTTPException(status_code=401, detail="Your Account was locked")
|
||||
cookieEncode = user_service.check_login(db=db, user_id=db_user.id)
|
||||
response.set_cookie(key=settings.COOKIE_KEY, value=cookieEncode.session)
|
||||
return ReturnValue(status=200, data=jsonable_encoder(db_user))
|
||||
|
Reference in New Issue
Block a user