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)
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
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
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)}
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())
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'})
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)
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)
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()
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')
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)
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)
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()
def load_user(user_id): return Usuario.get_by_id(int(user_id))
def usuario_delete(email): usuario = Usuario.objects(email=email).first() usuario.delete() return redirect('/usuarios/')
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)
def traduz_usuario(tupla): return Usuario(tupla[0], tupla[1], tupla[2])
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)
#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)
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
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])
def usuarios(): usuarios = json.loads(Usuario.objects().to_json()) return render_template("usuarios.html", usuarios=usuarios)