Graduation / Logic /FUsers /AddUser.py
Mohammedallyl's picture
Update Logic/FUsers/AddUser.py
564a229 verified
raw
history blame
3.75 kB
from fastapi import APIRouter,File,Form,UploadFile
import sqlite3
from passlib.context import CryptContext
from os import makedirs,chmod
from os.path import exists
from PIL import Image
from io import BytesIO
UserAddRouter=APIRouter(prefix="/Users")
@UserAddRouter.post("/AddUser")
def adduser(AdminEmail:str=Form(...),AdminPassword:str =Form(...),Email:str=Form(...),Name:str=Form(...),Job:str=Form(...),Phonenumber:str=Form(...),Place:str=Form(...),BDay:str=Form(...),Password:str=Form(...),Images:UploadFile=File(...)):
try:
pwd_context=CryptContext(schemes=["bcrypt"],deprecated="auto")
AdminPassword="$2b$12$33H14GFBvtomzLrEaM6Tqu7Jr621eHlXL9TVtdPU6YCljxc4eug2a"
if AdminEmail !="[email protected]":
if not pwd_context.verify( AdminPassword,AdminPassword):
return {"Status":False,"Message":" Admin Email or Password is not correct "}
pwd_context=CryptContext(schemes=["bcrypt"],deprecated="auto")
UserId=0
connect=sqlite3.connect("DataBase/DataBase.bd")
cursor=connect.execute(f'''
SELECT UserId FROM Users where Email='{ Email}'
''')
Data=cursor.fetchall()
if len(Data)==1:
if (Data[0]!=None):
return {"Status":False,"Message":"Email Is Alread Exists"}
cursor=connect.execute('''
SELECT MAX(UserId) FROM Users
''')
Data=cursor.fetchall()
if len(Data)!=0:
if Data[0][0]==None:
UserId=0
else:
UserId=Data[0][0]+1
HashedPassword=pwd_context.hash( Password)
connect.execute(f'''
INSERT INTO Users (UserId ,Email ,UserName ,Job, Phonenumber ,Place,BDay ,Password ) VALUES ({UserId},'{ Email}','{ Name}','{ Job}', '{ Phonenumber}' ,'{ Place}','{ BDay}','{HashedPassword}')
''')
connect.commit()
connect.close()
if (not exists(f"./FaceRecognition/ExtactedFaces/{UserId}/Train")):
makedirs(f"./FaceRecognition/ExtactedFaces/{UserId}/Train")
chmod(f"./FaceRecognition/ExtactedFaces/{UserId}/Train",0o777)
if (not exists(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/Negative")):
makedirs(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/Negative")
chmod(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/Negative",0o777)
if (not exists(f"./FaceRecognition/ExtactedFaces/{UserId}/Test")):
makedirs(f"./FaceRecognition/ExtactedFaces/{UserId}/Test")
chmod(f"./FaceRecognition/ExtactedFaces/{UserId}/Test",0o777)
if (not exists(f"./FaceRecognition/FaceModel/{UserId}")):
makedirs(f"./FaceRecognition/FaceModel/{UserId}")
chmod(f"./FaceRecognition/FaceModel/{UserId}",0o777)
if (not exists(f"./static/{UserId}")):
makedirs(f"./static/{UserId}")
chmod(f"./static/{UserId}",0o777)
Image.open(BytesIO(Images.file.read())).save(f"./static/{UserId}/user.png","PNG")
chmod(f"./static/{UserId}/user.png",0o777)
if (not exists(f"./IndoorLocalization/Data/{UserId}")):
makedirs(f"./IndoorLocalization/Data/{UserId}")
chmod(f"./IndoorLocalization/Data/{UserId}",0o777)
if (not exists(f"./IndoorLocalization/IndoorModels/{UserId}")):
makedirs(f"./IndoorLocalization/IndoorModels/{UserId}")
chmod(f"./IndoorLocalization/IndoorModels/{UserId}",0o777)
return {"Status":True,"Message":"User Is Added Correctly"}
except Exception as e :
return {"Status":False,"Message":e}