Initial commit — multi-tenant filtering, port constraints, chart bbox
This commit is contained in:
+27
-8
@@ -100,11 +100,12 @@ class TokenResponse(BaseModel):
|
||||
role: str
|
||||
|
||||
class UserCreate(BaseModel):
|
||||
username: str
|
||||
nombre: str
|
||||
email: Optional[str] = None
|
||||
password: str
|
||||
role: str = "USER"
|
||||
username: str
|
||||
nombre: str
|
||||
email: Optional[str] = None
|
||||
password: str
|
||||
role: str = "USER"
|
||||
company_id: Optional[str] = None
|
||||
|
||||
@router.post("/login", response_model=TokenResponse)
|
||||
def login(form: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)):
|
||||
@@ -121,11 +122,25 @@ def login(form: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get
|
||||
|
||||
@router.get("/me")
|
||||
def me(user: User = Depends(get_current_user)):
|
||||
return {"username": user.username, "nombre": user.nombre, "role": user.role}
|
||||
return {
|
||||
"username": user.username,
|
||||
"nombre": user.nombre,
|
||||
"role": user.role,
|
||||
"company_id": getattr(user, "company_id", None),
|
||||
}
|
||||
|
||||
@router.get("/users", dependencies=[Depends(require_superadmin)])
|
||||
def list_users(db: Session = Depends(get_db)):
|
||||
return db.query(User).all()
|
||||
users = db.query(User).all()
|
||||
return [
|
||||
{
|
||||
"id": u.id, "username": u.username, "nombre": u.nombre,
|
||||
"email": u.email, "role": u.role, "activo": u.activo,
|
||||
"company_id": getattr(u, "company_id", None),
|
||||
"ultimo_login": u.ultimo_login.isoformat() if u.ultimo_login else None,
|
||||
}
|
||||
for u in users
|
||||
]
|
||||
|
||||
@router.post("/users", dependencies=[Depends(require_superadmin)])
|
||||
def create_user(data: UserCreate, db: Session = Depends(get_db)):
|
||||
@@ -138,10 +153,12 @@ def create_user(data: UserCreate, db: Session = Depends(get_db)):
|
||||
email=data.email,
|
||||
hashed_pw=hash_password(data.password),
|
||||
role=data.role,
|
||||
company_id=data.company_id,
|
||||
)
|
||||
db.add(user)
|
||||
db.commit()
|
||||
return {"ok": True, "username": user.username, "role": user.role}
|
||||
return {"ok": True, "username": user.username, "role": user.role,
|
||||
"company_id": user.company_id}
|
||||
|
||||
@router.put("/users/{username}", dependencies=[Depends(require_superadmin)])
|
||||
def update_user(username: str, data: dict, db: Session = Depends(get_db)):
|
||||
@@ -158,6 +175,8 @@ def update_user(username: str, data: dict, db: Session = Depends(get_db)):
|
||||
user.activo = data["activo"]
|
||||
if "password" in data and data["password"]:
|
||||
user.hashed_pw = hash_password(data["password"])
|
||||
if "company_id" in data:
|
||||
user.company_id = data["company_id"] or None
|
||||
db.commit()
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user