Exemple #1
0
def get_mensajes():
    '''
        Mensajeria por socketIO. Evento "getmensajes".
        Si el usuario que pide los mensajes no esta conectado el servidor da 500 error.
    '''
    print("getMensajes")
    for key in list(clients.keys()):
        if clients[key] == request.sid:
            origen = key

    usuario_origen = Usuario.get_usuario_por_id(origen)
    mensajes = Mensaje.get_mensajes_usuario(usuario_origen.id_usuario)
    mensajes_dic = []
    for msg in mensajes:
        mensajes_dic.append({
            "origen":
            Usuario.get_usuario_por_id(msg.id_origen).nombre,
            "destino":
            Usuario.get_usuario_por_id(msg.id_destino).nombre,
            "mensaje":
            msg.mensaje,
            "tiempo":
            msg.tiempo,
            "id_lugar":
            msg.id_lugar
        })

    emit("getmensajes", json.dumps(mensajes_dic), room=request.sid)
Exemple #2
0
def conectar(user_id):
    '''
        Metodo de conexion, que ademas registra las conexiones activas.
    '''
    print("Alguien se quiere conectar")
    #user_id = request.args.get('user_id', '')
    try:
        print("Alguien se quiere conectar {}".format(user_id))
        usuario = Usuario.get_usuario_por_id(user_id)
        emit("conectar", {
            'status': 'OK',
            'usuario': usuario.nombre
        },
             room=request.sid)
        clients[user_id] = request.sid
        mensajes_sin_enviar = Mensaje.get_mensajes(usuario.id_usuario)
        for msg in mensajes_sin_enviar:
            emit("act-mensajes", {
                "origen": Usuario.get_usuario_por_id(msg.id_origen).nombre,
                "mensaje": msg.mensaje,
                "id_lugar": msg.id_lugar
            },
                 room=request.sid)
            msg.registrar_envio()
        print('Client Connect {}'.format(usuario.nombre))

    except Exception:
        emit("no_registrado", {
            'codigo': 404,
            'descripcion': 'ERROR: usuario no encontrado'
        },
             room=request.sid)
        print("no_registrado")
def registrar_usuario():
    try:
        # obtener el usuario
        usuario = request.json.get('usuario')
        # obtener la clave
        clave = request.json.get('clave')

        if not usuario or not clave:
            return jsonify(respuesta='Campos Invalidos'), 400

        # Consultar la DB
        existe_usuario = Usuario.query.filter_by(usuario=usuario).first()

        if existe_usuario:
            return jsonify(respuesta='Usuario Ya Existe'), 400

        # Encriptamos clave de usuario
        clave_encriptada = bcrypt.hashpw(clave.encode('utf-8'),
                                         bcrypt.gensalt())

        # Creamos el Modelo a guardar en DB
        nuevo_usuario = Usuario(usuario, clave_encriptada)

        db.session.add(nuevo_usuario)
        db.session.commit()

        return jsonify(respuesta='Usuario Creado Exitosamente'), 201
    except Exception:
        return jsonify(respuesta='Error en Petición'), 500
Exemple #4
0
def registrar_usuario():
    try:
        # Obtener el usuario.
        usuario = request.json.get('usuario')
        # Obtener la clave.
        clave = request.json.get('clave')

        if not usuario or not clave:
            return jsonify(respuesta='Campos inválidos'), 400

        # Consultar la base de datos.
        existe_usuario = Usuario.query.filter_by(usuario=usuario).first()

        if existe_usuario:
            return jsonify(respuesta='El usuario ya existe'), 400

        # Ciframos clave de usuario.
        clave_cifrada = bcrypt.hashpw(clave.encode('utf-8'), bcrypt.gensalt())

        # Creamos el modelo a guardar en base de datos.
        nuevo_usuario = Usuario(usuario, clave_cifrada)

        db.session.add(nuevo_usuario)
        db.session.commit()

        return jsonify(respuesta='Usuario creado con éxito'), 201

    except Exception:
        return jsonify(respuesta='Error en la petición'), 500
Exemple #5
0
def get_usuarios():
    '''
        Retorna los usuarios    
    '''
    print("getusuarios")
    usuarios = Usuario.get_usuarios()
    emit("getusuarios", json.dumps(usuarios), room=request.sid)
 def post(self):
     nuevo_usuario = Usuario(username=request.json.get("username"),
                             contrasena=request.json.get("contrasena"))
     try:
         db.session.add(nuevo_usuario)
         db.session.commit()
         return {'mensaje': "Inscripción exitosa"}
     except Exception as e:
         return {'mensaje': "Error al inscribir el usuario ({})".format(e)}
Exemple #7
0
def carga_datos_usuario():
    print("\t FORMULARIO REGISTRO USUARIO")
    usuario = Usuario(None, None, None, None, None, None, None, None)
    nombre = apellido = genero = email = password = telefono = ""
    nombre = get_validated_imput("- Ingresa el nombre del usuario: ", "Este campo no puede contener numeros", [str.isalpha])
    apellido = get_validated_imput("- Ingresa el apellido del usuario: ", "Este campo no puede contener numeros", [str.isalpha])
    flag = False
    while flag is False:
        genero = input("\t- Ingresa el sexo del usuario (M-> Masculino / F-> Femenino): ")
        flag = True if genero == 'M' or genero == 'F' else False

    email = get_validated_imput("- Ingresa el email del usuario: ", "Email no valido", [valida_email])

    # Al momento del registro se establece una contraseña por default, el usuario despues podra modificar dicha contraseña
    password = PASSWORD_DEFAULT
    telefono = int(get_validated_imput("- Ingresa telefono del usuario: ", "Este campo no puede contener letras", [str.isdigit]))

    # Listamos los roles
    roles_list = findAllRoles()
    i = 1
    for rol in roles_list:
        print("\t" + str(i) + "-" + rol.nombre_rol)
        i += 1
    print("\t- Elije un rol: ")
    rol_option = valid_opt_between_ranges(1, len(roles_list))

    # Disminuimos en uno la opcion ingresada por el usuario
    rol_usuario = roles_list[rol_option - 1]

    # Seteamos los valores de las entradas en el objeto de tipo Usuario
    usuario.nombre = nombre
    usuario.apellido = apellido
    usuario.genero = genero
    usuario.email = email
    usuario.password = password
    usuario.telefono = telefono
    usuario.rol = rol_usuario
    print(usuario.__str__())
    try:
        usuario_db = registrarNuevoUsuario(usuario)
        print("Usuario registrado con exito" if usuario_db == 1 else "Ocurrio un error en el proceso de registracion!")
    except AppException as e:
        print(e.message())
Exemple #8
0
def guardar_usuario():
    '''
        Guardar usuario en la base de datos. Devuelve error

        El json que se envia por POST tiene la siguiente forma:
            {"nombre": "usuario1n7", "id_usuario": "33778434611"}

    '''
    try:
        usr = Usuario(request.get_json())
        usr.guardar()
        emit('act-usuarios', usr.diccionarizar(), broadcast=True)

    except Exception:
        return json.dumps({
            'codigo': 500,
            'descripcion': 'ERROR:Usuario en uso'
        })

    return json.dumps({'codigo': '200'})
Exemple #9
0
def get_lugares(usuario_nombre=None):
    '''
        Retorna los lugares agregados por un usuario
            si usuario_nombre!=None regresa todos  los lugares
    '''
    print("getlugares")
    for key in list(clients.keys()):
        if clients[key] == request.sid:
            origen = key
    usuario = Usuario.get_usuario_por_id(origen)
    lugares = Lugar.get_lugares(usuario.nombre)
    emit("getlugares", json.dumps(lugares), room=request.sid)
Exemple #10
0
def usuarios_busca(email):
    usuario = Usuario.objects(email=email).first()

    if request.method == 'POST':
        usuario.email = request.form['email']
        usuario.nome = request.form['nome']

        usuario.save()

    usuario = json.loads(usuario.to_json())

    return render_template("usuarios_busca.html", usuario=usuario)
Exemple #11
0
def enviar_mensaje(destinatorio, texto_mensaje, id_lugar=None):
    '''
        Mensajeria por socketIO. Evento "mensaje".
    '''
    origen = None
    for key in list(clients.keys()):
        if clients[key] == request.sid:
            origen = key

    if origen == None:
        print("Error: Usuario Origen Desconectado")

    usuario_destino = Usuario.get_usuario(destinatorio)
    usuario_origen = Usuario.get_usuario_por_id(origen)
    mensaje = Mensaje(_id_origen=origen,
                      _id_destino=usuario_destino.id_usuario,
                      _mensaje=texto_mensaje,
                      _tiempo=datetime.datetime.now().strftime("%m-%d %H:%M"),
                      _id_lugar=id_lugar)
    try:
        socket_destino = clients[usuario_destino.id_usuario]
        for key in list(clients.keys()):
            if clients[key] == request.sid:
                origen = key
        emit("act-mensajes", {
            "origen": usuario_origen.nombre,
            "destino": usuario_destino.nombre,
            "mensaje": mensaje.mensaje,
            "tiempo": mensaje.tiempo,
            "id_lugar": mensaje.id_lugar
        },
             room=socket_destino)
        mensaje.estado = "enviado"
        mensaje.guardar()
    except KeyError:
        mensaje.guardar()
Exemple #12
0
def usuario_inserir():
    if request.method == 'POST':
        user = Usuario()
        user.email = request.form['email']
        user.nome = request.form['nome']

        user.save()

        return redirect('/usuarios/')

    return render_template('usuario_inserir.html')
Exemple #13
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        #get by email valida
        user = Usuario.get_by_email(form.email.data)
        if user is not None and user.check_password(form.password.data):
            # funcion provista por Flask-Login, el segundo parametro gestion el "recordar"
            login_user(user, remember=form.remember_me.data)
            # next_page = request.args.get('next', None)
            # if not next_page:
            #     next_page = url_for('index')
            return redirect(url_for('index'))

        else:
            flash('Usuario o contraseña inválido')
            return redirect(url_for('login'))
    # no loggeado, dibujamos el login con el form vacio
    return render_template('login.html', form=form)
Exemple #14
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = RegisterForm()
    error = None
    if form.validate_on_submit():
        username = form.username.data
        email = form.email.data
        password = form.password.data
        # Comprobamos que no hay ya un usuario con ese email
        user = Usuario.get_by_email(email)
        if user is not None:
            flash('El email {} ya está siendo utilizado por otro usuario'.format(email))
        else:
            # Creamos el usuario y lo guardamos
            user = Usuario(name=username, email=email)
            user.set_password(password)
            user.save()
            # Dejamos al usuario logueado
            login_user(user, remember=True)
            return redirect(url_for('index'))
    return render_template("register.html", form=form)
Exemple #15
0
                     categoria=c_geogra)
q_mundial = Pregunta(text="¿En qué país se jugó la Copa del Mundo de 1962?",
                     categoria=c_deporte)

db.session.add(c_geogra)
db.session.add(c_deporte)

db.session.add(q_Laos)
db.session.add(q_Armenia)
db.session.add(q_mundial)

db.session.commit()

# creamos otros usuarios (…) y los recorremos
categorias = Categoria.query.all()
for c in categorias:
    print(c.id, c.descripcion)
    # para cada categoria, obtenemos sus preguntas y las recorremos
    for p in c.preguntas:
        print(p.id, p.text)

cat = Categoria.query.get(1)
print(cat)

#Creo un usuario administrador
admin = Usuario(name="Administrador",
                email="*****@*****.**",
                admin=True,
                password="******")
db.session.add(admin)
db.session.commit()
Exemple #16
0
def load_user(user_id):
    return Usuario.get_by_id(int(user_id))
Exemple #17
0
def usuario_delete(email):
    usuario = Usuario.objects(email=email).first()

    usuario.delete()

    return redirect('/usuarios/')
Exemple #18
0
r_Armenia3 = Respuesta(text="7 millones", pregunta=q_Armenia, correcta=False)

r_Mundial1 = Respuesta(text="México", pregunta=q_mundial, correcta=False)
r_Mundial2 = Respuesta(text="Inglaterra", pregunta=q_mundial, correcta=False)
r_Mundial3 = Respuesta(text="España", pregunta=q_mundial, correcta=True)

r_cine1 = Respuesta(text="Ciudadano Kane", pregunta=q_cine1, correcta=True)
r_cine2 = Respuesta(text="El color del dinero",
                    pregunta=q_cine1,
                    correcta=False)
r_cine3 = Respuesta(text="El lobo de Wall Street",
                    pregunta=q_cine1,
                    correcta=False)

#Creo un usuario administrador y otro común
q_u1 = Usuario(name="Admin", email="*****@*****.**")
# el pass lo seteamos con el método set_password para que se guarde con hash
q_u1.set_password("admin")

q_u2 = Usuario(name="Gonzalo", email="*****@*****.**")
q_u2.set_password("admin")

db.session.add(c_geogra)
db.session.add(c_deporte)
db.session.add(c_cultura)

db.session.add(q_Laos)
db.session.add(q_Armenia)
db.session.add(q_mundial)

db.session.add(r_Laos1)
Exemple #19
0
def traduz_usuario(tupla):
    return Usuario(tupla[0], tupla[1], tupla[2])
Exemple #20
0
q_mundial = Pregunta(text="¿En qué país se jugó la Copa del Mundo de 1962?", categoria = c_deporte)
#Respuestas de Laos
r_Laos1 = Respuesta(text="Vientiane", answer=True, pregunta = q_Laos)
r_Laos2 = Respuesta(text="Oslo", answer=False,  pregunta = q_Laos)
r_Laos3 = Respuesta(text="Barcelona", answer=True, pregunta = q_Laos)
#Respuestas de Armenia
r_Armenia1 = Respuesta(text="3 millones", answer=True,  pregunta = q_Armenia)
r_Armenia2 = Respuesta(text="45 millones", answer=False,  pregunta = q_Armenia)
r_Armenia3 = Respuesta(text="300.000", answer=False,  pregunta = q_Armenia)
#Respuesta de Mundial
r_mundial1 = Respuesta(text="Chile", answer=True, pregunta = q_mundial)
r_mundial2 = Respuesta(text="Francia", answer=False,  pregunta = q_mundial)
r_mundial3 = Respuesta(text="Estados Unidos", answer=False, pregunta = q_mundial)

#Usuario
u_ernesto = Usuario(name="ernesto", email="*****@*****.**", is_admin=True)
u_ernesto.set_password("12345")

db.session.add(c_geogra)
db.session.add(c_deporte)
db.session.add(q_Laos)
db.session.add(q_Armenia)
db.session.add(q_mundial)
db.session.add(r_Laos1)
db.session.add(r_Laos2)
db.session.add(r_Laos3)
db.session.add(r_Armenia1)
db.session.add(r_Armenia2)
db.session.add(r_Armenia3)
db.session.add(r_mundial1)
db.session.add(r_mundial2)
Exemple #21
0
#Respuestas de Laos
r_Laos1 = Respuesta(text="Vientiane", answer=True, pregunta=q_Laos)
r_Laos2 = Respuesta(text="Oslo", answer=False, pregunta=q_Laos)
r_Laos3 = Respuesta(text="Barcelona", answer=False, pregunta=q_Laos)
#Respuestas de Armenia
r_Armenia1 = Respuesta(text="3 millones", answer=True, pregunta=q_Armenia)
r_Armenia2 = Respuesta(text="45 millones", answer=False, pregunta=q_Armenia)
r_Armenia3 = Respuesta(text="300.000", answer=False, pregunta=q_Armenia)
#Respuesta de Mundial
r_mundial1 = Respuesta(text="Chile", answer=True, pregunta=q_mundial)
r_mundial2 = Respuesta(text="Francia", answer=False, pregunta=q_mundial)
r_mundial3 = Respuesta(text="Estados Unidos", answer=False, pregunta=q_mundial)

#Usuario
u_ernesto = Usuario(name="ernesto",
                    email="*****@*****.**",
                    is_admin=True)
u_ernesto.set_password("aguanteDieste47")

db.session.add(c_geogra)
db.session.add(c_deporte)
db.session.add(q_Laos)
db.session.add(q_Armenia)
db.session.add(q_mundial)
db.session.add(r_Laos1)
db.session.add(r_Laos2)
db.session.add(r_Laos3)
db.session.add(r_Armenia1)
db.session.add(r_Armenia2)
db.session.add(r_Armenia3)
db.session.add(r_mundial1)
Exemple #22
0
def buildUsuario(registro):
    rol = findRol(registro[7])  # Buscamos el rol del usuario por su id_rol
    usuario = Usuario(registro[0], registro[1], registro[2], registro[3],
                      registro[4], registro[5], registro[6], rol)
    return usuario
Exemple #23
0
r_12 = Respuesta(text="1761", pregunta=q_Artigas, correcta=False)

r_13 = Respuesta(text="Blanes", pregunta=q_Blanes, correcta=True)
r_14 = Respuesta(text="Figari", pregunta=q_Blanes, correcta=False)
r_15 = Respuesta(text="Torres García", pregunta=q_Blanes, correcta=False)

db.session.add_all([c_geogra, c_deporte, c_historia, c_arte])

db.session.add_all([q_Laos, q_Armenia, q_mundial, q_Artigas, q_Blanes])

db.session.add_all([r_1, r_2, r_3, r_4, r_5, r_6, r_7, r_8, r_9, r_10, r_11, r_12, r_13, r_14, r_15])

db.session.commit()

# agregamos 1 admin y 4 users
u_admin = Usuario(name='admin', email='*****@*****.**')
u_admin.set_password("admin123")

u1 = Usuario(name='user1', email='*****@*****.**')
u1.set_password("pass1")

u2 = Usuario(name='user2', email='*****@*****.**')
u2.set_password("pass2")

u3 = Usuario(name='user3', email='*****@*****.**')
u3.set_password("pass3")

u4 = Usuario(name='user4', email='*****@*****.**')
u4.set_password("pass4")

db.session.add_all([u_admin, u1, u2, u3, u4])
Exemple #24
0
def usuarios():
    usuarios = json.loads(Usuario.objects().to_json())

    return render_template("usuarios.html", usuarios=usuarios)