示例#1
0
    def controlarPass(self, passNuevo, idU):
        sesion=Session()

        u=sesion.query(Usuario).filter(Usuario.id==idU).first()
        u.passwd=passNuevo
        um=UsuarioManejador()
        sesion.close()
        return um.guardarUsuario(u, idU)
示例#2
0
 def controlarUsuario(self, usuario, idU):
     u=usuario
     
     u.username=u.username.strip()
     u.nombres=u.nombres.strip()
     u.passwd=u.passwd.strip()
     u.apellidos=u.apellidos.strip()
     u.email=u.email.strip()
     u.ci=u.ci.strip()
     u.telefono=u.telefono.strip()
     u.observacion=u.observacion.strip()
     u.activo=u.activo.strip()
     u.direccion=u.direccion.strip()
     
     '''controla el tamano de los strings'''
      
     if not(1<=len(u.username)<=20 and 1<=len(u.passwd)<=32 \
           and 1<=len(u.nombres)<=30 and 1<=len(u.apellidos)<=30 and 1<=len(u.email)<=30 \
           and 1<=len(u.ci)<=10and 0<=len(u.telefono)<=13 and 0<=len(u.observacion)<=50 \
           and 1<=len(u.activo)<=10 and 0<=len(u.direccion)<=30): 
         return make_response('t,Se supera caracteres de los campos ')
         
     
     '''controla caracteres validos en el username'''
     
     for r in u.username:
         if not(65<=ord(r)<=90 or 48<=ord(r)<=57 or 97<=ord(r)<=122):
             responde=make_response("t,El username tiene espacios")
             return responde
     print "controla"
     
     '''consulta si es que existe ya usuario con ese nombre'''
     
     sesion=Session()
     if(idU==0):
         usr=sesion.query(Usuario).filter(Usuario.username==u.username).first()
         if(usr is not None):
             sesion.close()
             return make_response('t,Ya existe el usuario')
     else:
         usr=sesion.query(Usuario).filter(Usuario.username==u.username).first()
         if( usr is not None and str(usr.id) != idU ):
             sesion.close()
             return make_response('t,Ya existe el usuario')
         
         PLproyectos=sesion.query(Proyecto).join(Usuario).filter(Usuario.id==idU).filter(Proyecto.estado=="activo").count()
         print "Soy project leader de  " + str(PLproyectos) + " Proyectos activos"
         if  u.activo=="false" and PLproyectos>0:
             sesion.close()
             return make_response('t,El usuario no puede ser inactivado. Es Projec Leader de Proyectos en curso')
         
         comiteProyectos=sesion.query(Proyecto).join(Proyecto.usuariosComite).filter(Usuario.id==idU)            
         countComite=comiteProyectos.count()
         if countComite > 0:
             countComiteActivos=comiteProyectos.filter(Proyecto.estado=="activo").count()
             if countComiteActivos >0:
                 sesion.close()
                 return make_response('t,El usuario no puede ser inactivado. Es Miembro de Comite/s de Proyectos en curso')
             else:
                 sesion.close()
                 return make_response('t,Para ser Inactivado debe dejar de ser miembro de Comite/s de Cambios.')
         
     um=UsuarioManejador()
     sesion.close()
     return um.guardarUsuario(u, idU)