async def login(req):
user = await auth.verify(req.email, req.password)
if not user: raise Unauthorized()
session = make_session(user.id) # cookie firmada
return redirect("/", set_cookie=session)
class Usuario(Base):
email: str; rol: str # admin|staff|colaborador|cliente
def can(self, perm): return rbac.allows(self.rol, perm)
@app.get("/")
def dashboard(u = Depends(require_user)):
return render("panel", clientes=crm.all(), kpis=stats())
# pksel-os // rama de programación de piksel house
for modulo in catalog.modulos: deploy(modulo, cliente)
SELECT quote_num, total FROM cotizaciones WHERE estado='cotizado';
async def login(req): user = await auth.verify(req.email, req.password)