Spaces:
Sleeping
Sleeping
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") | |
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} |