save
This commit is contained in:
@@ -13,8 +13,10 @@ from fastapi import File, UploadFile, FastAPI
|
||||
from ..models.models import (
|
||||
UserModel,
|
||||
ShowUserModel,
|
||||
UpdateUserModel
|
||||
UpdateUserModel,
|
||||
token_test
|
||||
)
|
||||
from ..models.post import *
|
||||
from ..dependecies import (
|
||||
get_current_user,
|
||||
authenticate_user,
|
||||
@@ -132,40 +134,30 @@ async def login_for_access_token(body: LoginRequest):
|
||||
@router.post("/token")
|
||||
async def login_for_access_token_2(body: OAuth2PasswordRequestForm = Depends()):
|
||||
user = await authenticate_user_oauth2(body.username, body.password)
|
||||
print(body)
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="Incorect ID or password",
|
||||
headers={"WWW-Authenticate": "Bearer"},
|
||||
)
|
||||
# access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
||||
# access_token = create_access_token(
|
||||
# data={"sub": user["username"]}, expires_delta=access_token_expires
|
||||
# )
|
||||
# await db["users"].update_one({"username": body.username}, {"$set": {
|
||||
# "last_login": datetime.now().strftime("%m/%d/%y %H:%M:%S"),
|
||||
# "is_active": "true"
|
||||
# }})
|
||||
|
||||
return {"access_token": user["access_token"], "token_type": "bearer"}
|
||||
|
||||
|
||||
@router.get(
|
||||
"/list", response_description="List all users", response_model=List[ShowUserModel]
|
||||
)
|
||||
async def list_users():
|
||||
users = await db["users"].find().to_list(1000)
|
||||
for user in users:
|
||||
user["is_active"] = "false"
|
||||
try:
|
||||
last_login = datetime.strptime(
|
||||
user["last_login"], "%m/%d/%y %H:%M:%S")
|
||||
my_delta = datetime.now() - last_login
|
||||
if my_delta <= timedelta(days=30):
|
||||
user["is_active"] = "true"
|
||||
except ValueError:
|
||||
pass
|
||||
# @router.get(
|
||||
# "/list", response_description="List all users", response_model=List[ShowUserModel]
|
||||
# )
|
||||
# async def list_users():
|
||||
# users = await db["users"].find().to_list(1000)
|
||||
# for user in users:
|
||||
# user["is_active"] = "false"
|
||||
# try:
|
||||
# last_login = datetime.strptime(
|
||||
# user["last_login"], "%m/%d/%y %H:%M:%S")
|
||||
# my_delta = datetime.now() - last_login
|
||||
# if my_delta <= timedelta(days=30):
|
||||
# user["is_active"] = "true"
|
||||
# except ValueError:
|
||||
# pass
|
||||
|
||||
|
||||
@router.post("/current", response_description="Current User")
|
||||
@@ -210,30 +202,39 @@ async def refresh_token(refresh_token: TokenModel):
|
||||
return json.loads(response.text)
|
||||
|
||||
|
||||
@router.put("/admin/{user_id}", response_description="Update a user", response_model=UpdateUserModel)
|
||||
async def update_user(user_id: str, user: UpdateUserModel):
|
||||
if current_user["role"] == "admin":
|
||||
user = {k: v for k, v in user.dict().items() if v is not None}
|
||||
if len(user) >= 1:
|
||||
update_result = await db["users"].update_one({"_id": user_id}, {"$set": user})
|
||||
if update_result.modified_count == 1:
|
||||
if (
|
||||
updated_user := await db["users"].find_one({"_id": user_id})
|
||||
) is not None:
|
||||
return updated_user
|
||||
if (existing_user := await db["users"].find_one({"_id": user_id})) is not None:
|
||||
return existing_user
|
||||
raise HTTPException(
|
||||
status_code=404, detail=f"User {user_id} not found")
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=403, detail=f"Not having sufficient rights to modify the content")
|
||||
# @router.put("/admin/{user_id}", response_description="Update a user", response_model=UpdateUserModel)
|
||||
# async def update_user(user_id: str, user: UpdateUserModel):
|
||||
# if current_user["role"] == "admin":
|
||||
# user = {k: v for k, v in user.dict().items() if v is not None}
|
||||
# if len(user) >= 1:
|
||||
# update_result = await db["users"].update_one({"_id": user_id}, {"$set": user})
|
||||
# if update_result.modified_count == 1:
|
||||
# if (
|
||||
# updated_user := await db["users"].find_one({"_id": user_id})
|
||||
# ) is not None:
|
||||
# return updated_user
|
||||
# if (existing_user := await db["users"].find_one({"_id": user_id})) is not None:
|
||||
# return existing_user
|
||||
# raise HTTPException(
|
||||
# status_code=404, detail=f"User {user_id} not found")
|
||||
# else:
|
||||
# raise HTTPException(
|
||||
# status_code=403, detail=f"Not having sufficient rights to modify the content")
|
||||
|
||||
|
||||
@router.delete("/delete_user/{user_id}", response_description="Delete a user")
|
||||
async def delete_user(user_id: str):
|
||||
delete_result = await db["users"].delete_one({"_id": user_id})
|
||||
if delete_result.deleted_count == 1:
|
||||
return JSONResponse(status_code=status.HTTP_204_NO_CONTENT)
|
||||
# @router.delete("/delete_user/{user_id}", response_description="Delete a user")
|
||||
# async def delete_user(user_id: str):
|
||||
# delete_result = await db["users"].delete_one({"_id": user_id})
|
||||
# if delete_result.deleted_count == 1:
|
||||
# return JSONResponse(status_code=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
raise HTTPException(status_code=404, detail=f"User {user_id} not found")
|
||||
# raise HTTPException(status_code=404, detail=f"User {user_id} not found")
|
||||
|
||||
|
||||
# @router.get(
|
||||
# "/list1111", response_description="List all users", response_model=List[UpdatePostModel]
|
||||
# )
|
||||
# async def list_users(token: token_test = Depends(get_current_user)):
|
||||
# print(token)
|
||||
# users = await db["posts"].find().to_list(1000)
|
||||
# return users
|
||||
|
||||
Reference in New Issue
Block a user