main, crud: implement disallow user
Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
		
							parent
							
								
									32c58daf57
								
							
						
					
					
						commit
						3302c4dc39
					
				@ -14,7 +14,7 @@ def get_user(db: Session, user_id: int):
 | 
			
		||||
    return db.query(models.User).get(user_id)
 | 
			
		||||
 | 
			
		||||
def get_iot_entity(db: Session, id: int):
 | 
			
		||||
    return db.query(models.IotEntity).filter(models.IotEntity.id == id).first()
 | 
			
		||||
    return db.query(models.IotEntity).get(id)
 | 
			
		||||
 | 
			
		||||
def get_iot_entity_by_description(db: Session, description: str):
 | 
			
		||||
    return db.query(models.IotEntity).filter(models.IotEntity.description == description).first()
 | 
			
		||||
@ -41,7 +41,6 @@ def create_user(db: Session, user: schemas.UserCreate):
 | 
			
		||||
    db.refresh(db_user)
 | 
			
		||||
    return db_user
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_iot_entities(db: Session, skip: int = 0, limit: int = 100):
 | 
			
		||||
    return db.query(models.IotEntity).offset(skip).limit(limit).all()
 | 
			
		||||
 | 
			
		||||
@ -56,12 +55,24 @@ def create_iot_entity(db: Session, iot_entity: schemas.IotEntityCreate):
 | 
			
		||||
 | 
			
		||||
def create_user_link_to_iot(db: Session, user_id: int, iot_dev_id: int):
 | 
			
		||||
    # Ensure link is not already present and it does not allow duplicates
 | 
			
		||||
    link = db.query(models.UserAuthToIoTDev).filter(models.UserAuthToIoTDev.user_id == user_id).filter(models.UserAuthToIoTDev.iot_entity_id == iot_dev_id).first()
 | 
			
		||||
    if link: return True
 | 
			
		||||
    new_link = models.UserAuthToIoTDev(user_id=user_id, iot_entity_id=iot_dev_id)
 | 
			
		||||
    db.add(new_link)
 | 
			
		||||
    db.commit()
 | 
			
		||||
    db.refresh(new_link)
 | 
			
		||||
    return True
 | 
			
		||||
 | 
			
		||||
def remove_user_link_to_iot(db: Session, user_id: int, iot_dev_id: int):
 | 
			
		||||
    # Ensure link is not already present and it does not allow duplicates
 | 
			
		||||
    link = db.query(models.UserAuthToIoTDev).filter(models.UserAuthToIoTDev.user_id == user_id).filter(models.UserAuthToIoTDev.iot_entity_id == iot_dev_id).first()
 | 
			
		||||
    if not link: return True
 | 
			
		||||
    db.delete(link)
 | 
			
		||||
    db.flush()
 | 
			
		||||
    db.commit()
 | 
			
		||||
    #db.refresh(link)
 | 
			
		||||
    return True
 | 
			
		||||
 | 
			
		||||
def set_open_door_request(db: Session, iot_entity_id: int):
 | 
			
		||||
    device = get_iot_entity(db, iot_entity_id)
 | 
			
		||||
    setattr(device, "open_request", True)
 | 
			
		||||
 | 
			
		||||
@ -102,7 +102,6 @@ def read_user(user_id: int, db: Session = Depends(get_db)):
 | 
			
		||||
        raise HTTPException(status_code=404, detail="User not found")
 | 
			
		||||
    return db_user
 | 
			
		||||
 | 
			
		||||
# TODO: Can duplicate
 | 
			
		||||
@app.post("/admin/users/allowdevice/id", tags=['Admin'])
 | 
			
		||||
def allow_user_for_iot_entity_by_id(request: schemas.UserAllowForIotEntityRequestByID, db: Session = Depends(get_db)):
 | 
			
		||||
    user = crud.get_user(db, request.user_id)
 | 
			
		||||
@ -117,7 +116,7 @@ def allow_user_for_iot_entity_by_id(request: schemas.UserAllowForIotEntityReques
 | 
			
		||||
    if not res:
 | 
			
		||||
        raise HTTPException(status_code=500, detail="Could not complete operation")
 | 
			
		||||
 | 
			
		||||
    return user
 | 
			
		||||
    return
 | 
			
		||||
 | 
			
		||||
@app.post("/admin/users/disallowdevice/id", tags=['Admin'])
 | 
			
		||||
def disallow_user_for_iot_entity_by_id(request: schemas.UserAllowForIotEntityRequestByID, db: Session = Depends(get_db)):
 | 
			
		||||
@ -129,8 +128,7 @@ def disallow_user_for_iot_entity_by_id(request: schemas.UserAllowForIotEntityReq
 | 
			
		||||
    if not iot_entity:
 | 
			
		||||
        raise HTTPException(status_code=404, detail="Iot Entity not found")
 | 
			
		||||
 | 
			
		||||
    #res = crud.create_user_link_to_iot(db, request.user_id, request.iot_entity_id)
 | 
			
		||||
    # Implement remove link
 | 
			
		||||
    res = crud.remove_user_link_to_iot(db, request.user_id, request.iot_entity_id)
 | 
			
		||||
    if not res:
 | 
			
		||||
        raise HTTPException(status_code=500, detail="Could not complete operation")
 | 
			
		||||
 | 
			
		||||
@ -173,7 +171,7 @@ def get_iot_access_list_for_user(db: Session = Depends(get_db), current_user: sc
 | 
			
		||||
    user = crud.get_user_by_username(db, current_user.username)
 | 
			
		||||
    return user.authorized_devices
 | 
			
		||||
 | 
			
		||||
@app.post("/users/open",tags=['Users'])
 | 
			
		||||
@app.post("/users/open", tags=['Users'])
 | 
			
		||||
def issue_open_door_command(command: schemas.OpenDoorRequestBase, 
 | 
			
		||||
                            db: Session = Depends(get_db),
 | 
			
		||||
                            current_user: schemas.User = Depends(get_current_active_user)):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user