def recuperar(): #try: if request.method == 'POST': user = escape(request.form['correo']) if UT.isEmailValid(user): query = "SELECT count(id) FROM usuario WHERE correo = ?" res = conexion.ejecutar_consulta_sel(query, (user)) #print(res) if res != None: #Configuracion del correo receiver = request.form['correo'] sender = "Tienda cia <*****@*****.**>" print(receiver) recipients = [receiver] saludo = 'Correo de recuperacion de clave' #Generar link msg = Message(saludo, sender=sender, recipients=recipients) msg.body = U"""Hola hemos recibido una solicitud por parte de este correo para recuperar la clave haga clic en el siguiente link sino ignore este mensaje""" mail.send(msg) #Envio link else: flash('Error el correo no esta registrado en la base de datos') else: #la clave no reune las caracteristicas flash('No es un formato de correo valido') inst = restaurarUsuario() # Una instancia del formulario return render_template('recusuario.html', form=inst)
def olvidarcontraseña(): olv1 = OlvidarForm() if request.method == 'POST': correo = request.form.get('correo') if not utils.isEmailValid(correo): flash('Formato de correo invalido') return render_template('Olvidar.html', olv=olv1) recuperacion = s.dumps(correo, salt='recuperacion-correo') link = url_for('recuperar_contraseña', recuperacion=recuperacion, _external=True) db = get_db() db.execute("update usuario set activacion = ? where correo = ?", (recuperacion, correo)) db.commit() yag = yagmail.SMTP('*****@*****.**', 'HolamundoMintic2020') yag.send( to=correo, subject='Recuperación de contraseña', contents='Ingrese al link para cambiar la contraseña de la cuenta ' + link) return redirect(url_for('pagina')) return render_template("Olvidar.html", olv1=olv1)
def forgot(): try: if g.user: # DAVID return redirect('/logout') # DAVID if request.method == 'POST': email = request.form['email'] error = None if not utils.isEmailValid(email): error = 'Correo inválido' flash(error) return render_template('forgot.html') serverEmail = yagmail.SMTP('*****@*****.**', 'Karen.1234') serverEmail.send( to=email, subject='Recuperar contraseña', contents= 'Hola! haz olvidado tu contraseña..... Esta es tu contraseña:') flash('Revisa en tu correo la contraseña') return render_template('login.html') return render_template('forgot.html') except Exception as e: print("Ocurrio un eror:", e) return render_template('forgot.html')
def envioRegistro(): try: if request.method == 'POST': usuario = request.form['usuario'] clave = request.form['clave'] email = request.form['email'] if utils.isEmailValid(email): if utils.isUsernameValid(usuario): if utils.isPasswordValid(clave): yag = yagmail.SMTP('*****@*****.**','clave527') yag.send(to=email,subject='Validar cuenta', contents='Revisa tu correo para activar tu cuenta.') return "Correo enviado a: " + email else: return "Contraseña no valida: " + clave else: return "Usuario no valido: " + usuario else: return "Correo no valido: " + email else: return render_template('registro.html') except: return render_template('registro.html')
def reset_password(): try: if request.method == 'POST': email = request.form['email'] if utils.isEmailValid(email): user = CRUD.buscar_un_correo(email) if user == None: return render_template( 'reset-password.html', RESET_OK="false", Message="Correo ingresado no es válido") recoveryKey = get_random_key(30) now = datetime.datetime.now() CRUD.create_recovery_data(user[0], recoveryKey, now) yag = yagmail.SMTP(user='******', password='******') yag.send(to=email, subject='Recupera tu contraseña', contents=render_template('reset-email-template.html', username=user[1], email=user[2].replace( "@", "%40", 1), recoveryKey=recoveryKey, url=request.url_root)) return render_template('reset-password.html', RESET_OK="true") else: return render_template('reset-password.html', RESET_OK="false", Message="Correo ingresado no es válido") else: return render_template('reset-password.html', RESET_OK="false") except: return "render_template('reset-password.html')"
def recuperar(): form = FormRecuperar() if(form.validate_on_submit()): email = form.correoRecuperar.data if utils.isEmailValid(email): yag = yagmail.SMTP('*****@*****.**','Jesuischriss_25') yag.send(to=email,subject='Restablecer Contraseña', contents=""" Hola, querido usuario: Te hemos enviado un enlace para que puedas restablecer tu contraseña. https://www.avenidasiemprevivacalle123.com.co Que tengas un resto de dia muy agradable. Atentamente, La Administracion.""") flash('Se ha enviado un enlace de "restablecer contraseña" a tu correo {}'.format(form.correoRecuperar.data)) return redirect(url_for('gracias')) else: flash('El correo {} no es valido'.format(form.correoRecuperar.data)) return redirect(url_for('recuperar')) return render_template('recuperarClave.html', titulo='Registrar Usuario', form=form)
def recuperar(): #try: if request.method == 'POST': user = escape(request.form['correo']) if UT.isEmailValid(user): res = views.existeusuario(user) #print(res) if int(res) > 0: #Configuracion del correo receiver = request.form['correo'] sender = "Tienda cia <*****@*****.**>" print(receiver) recipients = [receiver] saludo = 'Correo de recuperacion de clave' link = views.genlink(receiver) #Generar link msg = Message(saludo, sender=sender, recipients=recipients) # msg.body = U"""Hola hemos recibido una solicitud por parte de este correo para recuperar # la clave haga clic en el siguiente link sino ignore este mensaje""" msg.html = '<p>Hola hemos recibido una solicitud por parte de este correo para recuperar' msg.html += 'la clave, haga clic en el siguiente <a href="http://127.0.0.1:5000/password/' msg.html += str( res ) + "/" + link + '">link </a> sino fue usted ignore este mensaje<p>' mail.send(msg) return render_template('login.html') #Envio link else: flash('Error el correo no esta registrado en la base de datos') else: #la clave no reune las caracteristicas flash('No es un formato de correo valido') inst = restaurarUsuario() # Una instancia del formulario return render_template('recusuario.html', form=inst)
def Registrarse(): if g.user: return redirect(url_for('perfil')) form = RegistrarForm() if request.method == 'GET': return render_template("registrarse.html", form=form) if request.method == 'POST': name = request.form.get('name') email = request.form.get('email') username = request.form.get('user') password = request.form.get('contra') if not utils.isUsernameValid(name): flash("Nombre invalido") if not utils.isEmailValid(email): flash("Correo invalido") return render_template('registrarse.html', form=form) if not utils.isUsernameValid(username): flash("Usuario invalido") return render_template('registrarse.html', form=form) if not utils.isPasswordValid(password): flash( "La contraseña debe tener al menos una mayúscula y un número") return render_template('registrarse.html', form=form) db = get_db() usuariodisponible = db.execute("SELECT * FROM usuario WHERE user = ?", (username, )).fetchall() if usuariodisponible: flash("El usuario no esta disponible") return render_template('registrarse.html', form=form) else: correodisponible = db.execute( "SELECT * FROM usuario WHERE correo = ?", (email, )).fetchall() if correodisponible: flash("El correo ya está registrado") return render_template('registrarse.html', form=form) activacion = s.dumps(email, salt='activacion-correo') hash_password = generate_password_hash(password) db.execute( "INSERT INTO usuario (nombre,user,correo,contraseña,activo,activacion) values (?,?,?,?,?,?)", (name, username, email, hash_password, False, activacion)) db.commit() link = url_for('confirmar_correo', activacion=activacion, _external=True) yag = yagmail.SMTP( '*****@*****.**', 'HolamundoMintic2020') #SMTP protocolo de envío de correos yag.send(to=email, subject='Activa tu cuenta', contents='Bienvenido, usa el link para activar tu cuenta ' + link) form1 = IniciosesionForm() return render_template('Iniciosesion.html', form=form1)
def register(): try: if g.user is None: return redirect(url_for("login")) if request.method == 'POST': username = request.form['username'] password = request.form['password'] email = request.form['email'] rol = request.form['rol'] error = None close_db() db= get_db() if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumerico" flash(error) return render_template('register.html') if not utils.isEmailValid(email): error = 'Correo inválido' flash(error) return render_template('register.html') if not utils.isPasswordValid(password): error = 'La contraseña debe tener por los menos una mayúcscula y una mínuscula y 8 caracteres' flash(error) return render_template('register.html') if db.execute('SELECT * FROM usuarios WHERE usuario=? AND correo=?',(username, email)).fetchone() is not None: error = "El usuario o correo electronico ya estan registrados" flash(error) close_db() return render_template('register.html') hash_password = generate_password_hash(password) db.execute('INSERT INTO usuarios (usuario,contraseña,correo,rol,activo) VALUES (?,?,?,?,1)',(username, hash_password, email, rol)) db.commit() close_db() serverEmail = yagmail.SMTP('*****@*****.**', 'Maracuya123') serverEmail.send(to=email, subject='Tu cuenta '+username+" en Cafeteria Aroma ha sido creada", contents='Bienvenido') flash('Revisa tu correo ') return render_template('login.html') return render_template('register.html') except Exception as e: #print("Ocurrio un eror:", e) return render_template('register.html')
def solicitud_registro(): try: if request.method == 'POST': name = request.form['nombre'] username = request.form['usuario'] email = request.form['correo'] password = request.form['contraseña'] if not utils.isUsernameValid(username): flash("Nombre de usuario inválido") return render_template('formulario_registro.html') if not utils.isPasswordValid(password): flash( "La contraseña debe contener al menos una minúscula, una mayúscula, un número y 8 caracteres" ) return render_template('formulario_registro.html') if not utils.isEmailValid(email): flash("Correo inválido") return render_template('formulario_registro.html') mensaje = "<html>" \ "<head><center><title>SOLICITUD PARA REGISTRO DE USUARIO</title></center></head>" \ "<body style='background: #DCDCDC;>" \ "<center><h1 style='font-weight: bold;' ></h1></center>" \ "<center><div style='width:450px; background: white; border-radius:5px;'>" \ "<img src='https://i.ibb.co/x8ns2tq/HANDMADE.png' style='width:450px; height:100px'><br><br>" \ "Cordial Saludo <br><br>" \ "Se ha Registrado una nueva solicitud de Registro en la plataforma<br><br>" \ "Los datos del usuario son los siguientes:<br><br>" \ "Nombre: <strong>" + name + "</strong><br>"\ "Username: <strong>" + username + "</strong><br>"\ "Correo: <strong>" + email + "</strong><br>"\ "Contraseña: <strong>" + password + "</strong><br><br>"\ "Para acceder al sistema, lo podra hacer mediante el siguiente enlace: <a href='https://54.227.121.118/administrador/registrar_usuario' style='font-weight: bold;'> INGRESAR </a><br><br>" \ "<div style='background-color:rgb(235,99,107); height:20px; width: 450px;'></div>" \ "</div></center>" \ "</body>" \ "</html>" yag = yagmail.SMTP('*****@*****.**', 'handmade2020') yag.send(to='*****@*****.**', subject='SOLICITUD DE REGISTRO', contents=mensaje) flash( "Su solicitud de registro será evaluada. Al correo registrado le llegará una notificación cuando su cuenta se active." ) return render_template('formulario_registro.html') return render_template('formulario_registro.html') except: return render_template('formulario_registro.html')
def revision(): try: if request.method == 'POST': username = request.form['usuario'] password = request.form['password'] reviewPassword = request.form['reviewPassword'] email = request.form['email'] error = None if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumerico" flash(error) return render_template('passwordLost.html') if not utils.isEmailValid(email): error = 'Correo inválido' flash(error) return render_template('passwordLost.html') if not utils.isPasswordValid(password): error = 'La contraseña debe tener por los menos una mayúcscula y una mínuscula y 8 caracteres' flash(error) return render_template('passwordLost.html') if not utils.isPasswordValid(reviewPassword): error = 'La contraseña debe tener por los menos una mayúcscula y una mínuscula y 8 caracteres' flash(error) return render_template('passwordLost.html') if not (password == reviewPassword): error = 'Las contraseñas ingresadas no coinciden' flash(error) return render_template('passwordLost.html') serverEmail = yagmail.SMTP('*****@*****.**', 'Maracuya123') serverEmail.send( to=email, subject='Cambio Contraseña ' + username + " en Cafeteria Aroma", contents='El cambio de la contraseña fue Exitoso XD \n\n' + "**Su contraseña nueva es: " + password) flash('Revisa tu correo la confirmación de nueva constraseña') return render_template('login.html') return render_template('login.html') except Exception as e: print("Ocurrio un eror:", e) return render_template('login.html')
def crear_usuario(): try: if request.method == 'POST': username = request.form['username'] password = request.form['password'] email = request.form['user_email'] error = None close_db() db = get_db() if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumérico" flash(error) return render_template(CREARUSUARIO) if not utils.isEmailValid(email): error = 'Correo inválido' flash(error) return render_template(CREARUSUARIO) if not utils.isPasswordValid(password): error = 'La contraseña debe tener por los menos 8 caractéres, una mayúsccula y una mínuscula' flash(error) return render_template(CREARUSUARIO) if db.execute('SELECT id_usu FROM Usuarios WHERE correo_usu = ?', (email,)).fetchone() is not None: error = "El correo ya existe" flash(error) return render_template('GestionarUsuarios.html') hash_password = generate_password_hash(password) db.execute( 'INSERT INTO Usuarios (nombre_usu, correo_usu, contraseña_usu, fecha_crea_usu, rol_usu_fk) Values(?,?,?,?,?)', (username, email, hash_password, datetime.datetime.now(), chck)) db.commit() serverEmail = yagmail.SMTP(EMAILSERVER, CONTRASEÑASERVER) serverEmail.send(to=email, subject='Activa tu cuenta', contents='Bienvenido, usa este link para activar tu cuenta \n Recuerda tus credenciales: \n Usuario: ' + username + '\n Contraseña: ' + password) flash('Revisa tu correo para activar tu cuenta') return render_template(CREARUSUARIO) else: return render_template(CREARUSUARIO) except Exception as e: print("Ocurrió un error cuando intentaste crear un usuario", e) return render_template(CREARUSUARIO)
def recuperarContraseña(): try: if request.method == 'POST': email = request.form['email'] if utils.isEmailValid(email): yag = yagmail.SMTP('*****@*****.**','') yag.send(to=email,subject='Restablecer contraseña', contents='Revisa tu correo para Restablecer contraseña.') return "Correo enviado a: " + email else: return "Correo no válido: " + email else: return render_template('recupClave.html') except: return render_template("recupClave.html")
def register(): if g.user: return redirect(url_for('send')) try: if request.method == 'POST': username = request.form['usuario'] password = request.form['password'] email = request.form['email'] error = None db = get_db() if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumerico o incluir solo '.','_','-'" flash(error) return render_template('register.html') if not utils.isPasswordValid(password): error = 'La contraseña debe contenir al menos una minúscula, una mayúscula, un número y 8 caracteres' flash(error) return render_template('register.html') if not utils.isEmailValid(email): error = 'Correo invalido' flash(error) return render_template('register.html') if db.execute('SELECT id FROM usuarios WHERE correo = ?', (email, )).fetchone() is not None: error = 'El correo ya existe'.format(email) flash(error) return render_template('register.html') hashPassword = generate_password_hash( password) #Generar hash+salt+PBK db.execute( 'INSERT INTO usuarios (usuario, correo, contraseña) VALUES (?,?,?)', (username, email, hashPassword)) db.commit() # yag = yagmail.SMTP('*****@*****.**', 'clave') #modificar con tu informacion personal # yag.send(to=email, subject='Activa tu cuenta', # contents='Bienvenido, usa este link para activar tu cuenta ') flash('Revisa tu correo para activar tu cuenta') return render_template('login.html') return render_template('register.html') except: return render_template('register.html')
def VerificacionContrasenaOlvidada(): if request.method == 'POST': email = request.form['email'] men = '' if not isEmailValid(email): men += "Email no valido \n" if men == '': #return 'BIENVENIDO' #men = "Ingreso Correcto" #return men yag = yagmail.SMTP('*****@*****.**', 'misiontic2020') yag.send( to=email, subject='Contraseña Olvidada', contents= 'Cambia tu contraseña <a href="http://127.0.0.1:5000/AsignacionContrasseñaOlvidada2">clic aqui</a>' ) return render_template('1.login.html')
def add_new_user_mail_sender(): try: if request.method == 'POST': usuario = request.form['username'] clave = request.form['password'] email = request.form['email'] if utils.isEmailValid(email): if utils.isUsernameValid(usuario): if utils.isPasswordValid(clave): ##VERIFICAR QUE EL USUARIO NO EXISTA hashed_password = generate_password_hash(clave) CRUD.register(usuario, hashed_password, email) yag = yagmail.SMTP(user='******', password='******') yag.send( to=email, subject='Cuenta Creada', contents= 'Sus credenciales de ingreso son las siguientes:\n -Usuario: ' + usuario + '\n -Correo: ' + email + '\n -Contraseña:' + clave) return render_template( "admin-panel-users-add.html", Alert= "Usuario creado correctamente. Se le envió mensaje de confirmación de cuenta a su correo." ) return render_template( "admin-panel-users-add.html", Alert="Error: Clave no cumple con lo exigido.") return render_template( "admin-panel-users-add.html", Alert="Error: usuario no cumple con lo exigido.") return render_template( "admin-panel-users-add.html", Alert="Error: Correo no cumple con lo exigido.") return render_template("admin-panel-users-add.html", Alert="") except: return render_template( "admin-panel-users-add.html", Alert= "Ocurrió un error en la creación del usuario. Contacte al administrador de la página." )
def register(): try: print(request.method) if request.method == 'POST': print('Post') username = request.form['usuario'] password = request.form['password'] email = request.form['email'] else: print('Get') username = request.args.get('usuario') password = request.args.get('password') email = request.args.get('email') error = None if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumérico o incluir . , _ - y debe ser de al menos 8 carateres" flash(error) return render_template("s12.html") if not utils.isPasswordValid(password): error = "La contraseña debe contener al menos una minúscula, una mayúscula, un número y 8 caracteres" flash(error) return render_template("s12.html") if not utils.isEmailValid(email): error = "Correo inválido" flash(error) return render_template("s12.html") yag = yagmail.SMTP('*****@*****.**', 'Holamundo1') yag.send( to=email, subject='Activa tu cuenta', contents='Bienvenido, usa este vínculo para activar tu cuenta (' + request.method + ')') flash('Revisa tu correo para activar tu cuenta') return render_template('login.html') except: return render_template('s12.html')
def login(): try: if request.method == 'POST': usuario = request.form['usuario'] clave = request.form['clave'] email = request.form['email'] if utils.isEmailValid(email): if utils.isUsernameValid(usuario): yag = yagmail.SMTP('*****@*****.**','Jesuischriss_25') yag.send(to=email,subject='Validar cuenta', contents='Revisa tu correo para activar tu cuenta.') return "Correo enviado a: " + email else: return "Usuario no valido. " + usuario else: return "Correo no valido. " + usuario else: return 'Entra con GET' except: return render_template('registro.html')
def modify_user(userId): login_required(userId) check_if_admin(userId) usuario = request.form['username'] email = request.form['email'] clave = request.form['password'] enabled = request.form.get('enabled') if enabled == None: enabled = False if utils.isEmailValid(email) and utils.isUsernameValid(usuario) and ( clave == "" or utils.isPasswordValid(clave)): hashed_password = generate_password_hash(clave) CRUD.actualizar_usuario(userId, usuario, hashed_password, email, enabled) return redirect("/admin/users/edit") return render_template( "admin-panel-users-error.html", message= "Error en la actualización del usuario. Favor verificar campos ingresados." )
def registro(): try: if request.method =='POST': user= request.form['usuario'] password = request.form['contrasena'] conf_password = request.form['conf_contrasena'] email = request.form['correo'] # error = None if not utils.isUsernameValid(user): # error = "El usuario debe ser alfanumerico o incluir solo '.','_','-'" # flash(error) MessageBox.showinfo(title="Hola!",message="El usuario debe ser alfanumerico o incluir solo '.','_','-'") return render_template('registro.html') if not utils.isPasswordValid(password): # error = 'La contraseña debe contener al menos una minúscula, una mayúscula, un número y 8 caracteres' # flash(error) MessageBox.showinfo(title="Hola!", message="La contraseña debe contener al menos una minúscula, una mayúscula, un número y 8 caracteres") return render_template('registro.html') if not utils.isEmailValid(email): # error = 'Correo inválido' # flash(error) MessageBox.showinfo(title="Hola!",message="Correo invalido") return render_template('registro.html') # if not password == conf_password: # # error = 'Las contraseñas no coinciden' # # flash(error) # MessageBox.showinfo(title="Hola!",message="Las contraseñas no coinciden") # return render_template('registro.html') yag = yagmail.SMTP('pruebamintic2022', 'Jmd12345678') yag.send(to=email, subject='Activa tu cuenta', contents='Muchas gracias por elegirnos, por favor usa este link para activar tu cuenta ') flash('Hemos enviado un correo para activar tu cuenta') return render_template('iniciar-sesion.html') return render_template('registro.html') except: return render_template('registro.html')
def procesar(): if request.method == 'POST': usuario = request.form['usuario'] email = request.form['email'] password = request.form['password'] #return 'hola ' + usuario men = '' if not isUsernameValid(usuario): men += "Usuario no valido \n" #if not isPasswordValid(password):s # men += "Contraseña no valida \n" if not isEmailValid(email): men += "Email no valido \n" if men == '': #return 'BIENVENIDO' yag = yagmail.SMTP('*****@*****.**', 'misiontic2020') yag.send( to=email, subject='Nueva Cuenta', contents='Activar cuenta <a href="www.google.com">clic aqui</a>' ) #men = "Ingreso Correcto" return render_template('2.menuadmin2.html')
def add_employee(): if g.user[4] != "Administrador": print(g.user[4]) return redirect('/error') try: if request.method == 'POST': username = request.form['usuario'] password = request.form['password'] email = request.form['email'] tipo = request.form['tipo'] error = None close_db() db = get_db() if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumerico" flash(error) return render_template('agregarUsuario.html') if not utils.isEmailValid(email): error = 'Correo inválido' flash(error) return render_template('agregarUsuario.html') if not utils.isPasswordValid(password): error = 'La contraseña debe tener por los menos una mayúcscula y una mínuscula y 8 caracteres' flash(error) return render_template('agregarUsuario.html') if db.execute('SELECT id FROM usuarios WHERE correo=?', (email, )).fetchone() is not None: error = 'El correo ya existe'.format(email) flash(error) return render_template('agregarUsuario.html') hashpass = generate_password_hash(password) db.execute( 'INSERT INTO usuarios (usuario,correo,contraseña,tipo) VALUES (?,?,?,?)', (username, email, hashpass, tipo)) db.commit() serverEmail = yagmail.SMTP('*****@*****.**', 'Karen.1234') serverEmail.send( to=email, subject='Activa tu cuenta', contents='Bienvenido, usa este link para activar tu cuenta') flash('Revisa tu correo para activar tu cuenta') # DEIZY # IMAGE # check if the post request has the file part if 'file' not in request.files: print('No file part') else: file = request.files['file'] # If the user does not select a file, the browser submits an # empty file without a filename. if file.filename == '': print('No selected file') users_list = db.execute( 'SELECT * FROM usuarios;').fetchall() return render_template('usuarios.html', users=users_list) if file and allowed_file(file.filename): filename = secure_filename(file.filename) print(filename.split('.')) ext_photo = filename.split('.') ext_photo = ext_photo[1] name_photo = username + '.' + ext_photo file.save( os.path.join(app.config['UPLOAD_FOLDER'], filename)) route_photo = 'resources/' + filename user_photo = convertToBinaryData(route_photo) db.execute( 'UPDATE usuarios SET foto=?, foto_name=? WHERE usuario=?', (user_photo, name_photo, username)) db.commit() # crear imagen en static/fotos writeTofile(user_photo, 'static/images/fotos/' + name_photo) else: flash('extension no permitida') return render_template('agregarUsuario.html') users_list = db.execute('SELECT * FROM usuarios;').fetchall() return render_template('usuarios.html', users=users_list) return render_template('agregarUsuario.html') except Exception as e: print("Ocurrio un eror:", e) return render_template('agregarUsuario.html')
def registrarse(): try: nombre = request.form['nombre'] apellidos = request.form['apellidos'] correo = request.form['correo'] usuario = request.form['usuario'] contrasena = request.form['clave'] confirmar_contrasena = request.form['confirma-clave'] isError = False if not nombre: error = "El nombre del usuario es requerido" flash(error) if not apellidos: error = "El apellido del usuario es requerido" flash(error) if not utils.isUsernameValid(usuario): error = "El usuario debe ser alfanumérico o incluir . , _ - y debe ser de al menos 8 carateres" flash(error) isError = True if not utils.isPasswordValid(contrasena): error = "La contraseña debe contener al menos una minúscula, una mayúscula, un número y 8 caracteres" flash(error) isError = True if not utils.isEmailValid(correo): error = "Dirección de correo inválida" flash(error) isError = True if isError: return render_template('new/registro.html') else: db = get_db() cursor = db.cursor() sql = "SELECT MAX(id) + 1 FROM usuario" cursor.execute(sql) results = cursor.fetchone() maxid = results[0] db.execute( 'INSERT INTO usuario (id, nombres, apellidos, correo, usuario, clave, estado) VALUES (?,?,?,?,?,?,"I")', (maxid, nombre, apellidos, correo, usuario, contrasena)) db.commit() sendmail( correo, "Activa tu cuenta", "Bienvenido a Blogs Company, utiliza este enlace para activar tu cuenta. http://3.134.84.146:443/activar/" + str(maxid)) flash( 'Se han registrado tus datos, revisa tu correo para activar tu cuenta' ) return render_template('new/registro.html') except: flash('Error interno') return render_template('new/registro.html')
def registro(): try: if request.method == "POST": # Ahora se actualizan los métodos de llamado a wtf form = formRegistro() global username1 global email1 # user_name = escape(request.form['usuario']) user_name = escape(form.usuario.data) # username1 = escape(request.form['usuario']) username1 = escape(form.usuario.data) # e_mail = escape(request.form['correo']) # email1 = escape(request.form['correo']) e_mail = escape(form.correo.data) email1 = escape(form.correo.data) pass_word = escape(form.clave.data) pwd_enc = generate_password_hash(pass_word) #verifico si existe conn = get_db_connection() exist = conn.execute('SELECT * FROM uribeparaco WHERE rovin = ?', [e_mail]).fetchall() conn.close() error = None if not utils.isUsernameValid(user_name): error = "El usuario debe ser alfanumérico" flash(error) return render_template('Vista_Registro.html') if not utils.isEmailValid(e_mail): error = "Email no válido" flash(error) return render_template('Vista_Registro.html') if not utils.isPasswordValid(pass_word): error = "La contraseña debe ser una combinación de mayúsculas, minusculas, números y al menos un caracter especial" flash(error) return render_template('Vista_Registro.html') if exist: error = "Este Correo ya está registrado" flash(error) return render_template('Vista_Registro.html') number = hex(random.getrandbits(256))[2:] yag = yg.SMTP('*****@*****.**', 'BlogHub1234**') yag.send(to=e_mail, subject="Activa tu cuenta", contents="Bienvenido a BlogHub " + user_name + " Su código de activación es " + url_for('activate', _external=True) + '?auth=' + number) try: with sqlite3.connect('BlogHubDB.db') as con: cur = con.cursor() #usuarios = uribeparaco, email = rovin, username= luffy, password = nami cur.execute( 'INSERT INTO uribeparaco(rovin,luffy,nami,soxo) VALUES(?,?,?,?)', (e_mail, user_name, pwd_enc, 0)) #Cuando son varios, es con paréntesis con.commit() cur.execute( 'INSERT INTO validacion(codigo,estado,email) VALUES(?,?,?)', (number, 0, e_mail)) #Cuando son varios, es con paréntesis con.commit() return render_template('Vista_Registro_Exitoso.html') except: con.rollback() return render_template('Vista_Registro.html') except: form = formRegistro() return render_template('Vista_Registro.html', form=form)
def mod_usuario(): try: if request.method == 'POST': identificacion = request.form['identificacion'] username = request.form['username'] password = request.form['password'] email = request.form['user_email'] delete_button = request.form.get('delete_button', None) try: chck_admin = request.form['admin'] except Exception as e: chck = 2 try: chck_user = request.form['user'] except Exception as e: chck = 1 error = None close_db() db = get_db() if delete_button == 'pressed': borrar_usuario(int(identificacion)) return redirect(url_for('mod_usuario')) if not utils.isUsernameValid(username): error = "El usuario debe ser alfanumérico" flash(error) return redirect(url_for('mod_usuario')) if not utils.isEmailValid(email): error = 'Correo inválido' flash(error) return redirect(url_for('mod_usuario')) if not utils.isPasswordValid(password): error = 'La contraseña debe tener por los menos 8 caractéres, una mayúsccula y una mínuscula' flash(error) return redirect(url_for('mod_usuario')) hash_password = generate_password_hash(password) db.execute( 'UPDATE Usuarios SET nombre_usu=?, correo_usu=?, contraseña_usu=?, fecha_mod_usu=?, rol_usu_fk=? WHERE id_usu=?', (username, email, hash_password, datetime.datetime.now(), chck, identificacion)) db.commit() serverEmail = yagmail.SMTP(EMAILSERVER, CONTRASEÑASERVER) serverEmail.send(to=email, subject='Modificacion Usuario', contents='Bienvenido, han modificado tu informacion de usuario, tus credenciales nuevas son: \n Usuario: ' + username + '\n Contraseña: ' + password) flash('Revisa tu correo') return redirect(url_for('usuarios')) else: lista_usu = ['Id Usuario a Modificar', 'Nuevo Nombre Usuario', 'Nuevo Correo Usuario', 'Nuevo Password Usuario'] return render_template(MODUSUARIO, data = lista_usu) except Exception as e: print("Ocurrió un error cuando intentaste modificar un usuario", e) return redirect(url_for('usuarios'))