Пример #1
0
def add_password():
    try:
        if request.method == 'POST':
            pws = escape(request.form['pws'])
            conf = escape(request.form['confirmacion'])
            if UT.isPasswordValid(pws):
                if UT.isPasswordValid(conf):
                    if pws == conf:
                        rpt = hashlib.md5(pws.encode())
                        pwd = rpt.hexdigest()
                        estado = "A"
                        iduser = 1
                        query = "UPDATE usuario set clave = ? , estado = ? WHERE id = ?"
                        res = conexion.ejecutar_consulta_acc(
                            query, (pwd, estado, iduser))
                        if res != None:
                            flash('Datos registrados con éxito')
                        else:  #else res
                            flash('Error al registrar los datos')
                    else:  #diferente pws y conf
                        flash('La contraseña y su verificacion no coinciden')
                else:  #la verificacion no reune las caracteristicas
                    flash('La confirmacion no es correcta')
            else:  #la contraseña no reune las caracteristicas
                flash('La contraseña no es valida')
        inst = contrasena()  # Una instancia del formulario
        return render_template('password.html', form=inst)
    except:
        pass
Пример #2
0
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')
Пример #3
0
def cambiarclave():
    try:
        if request.method == 'POST':
            db = get_db()
            error = None

            password = request.form['password']
            print(password)
            confirm_password = request.form['confirmar_password']
            print(confirm_password)
            username = session['user']
            clave = werkzeug.security.generate_password_hash(password, method='pbkdf2:sha256', salt_length=8)

            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('cambiar_contraseña.html')
            if password != confirm_password:
                flash("Las contraseñas no coinciden, intentelo nuevamente")
                return render_template('cambiar_contraseña.html')


            db.execute('UPDATE usuarios SET contraseña = ? WHERE usuario = ?', (clave, username,)).fetchone()
            db.commit()
            flash("La contraseña ha sido cambiado exitosamente")

        return render_template('iniciar_sesion.html')

    except:
        print('nada')

    return render_template('cambiar_contraseña.html')
Пример #4
0
def index():
    if request.method == "GET":
        return render_template('index.html')
    username = request.form["username"]
    password = request.form["password"]
    if not (utils.isUsernameValid(username)
            and utils.isPasswordValid(password)):
        return render_template("index.html",
                               Alert="Usuario y/o contraseña incorrectas.")
    user = CRUD.buscar_un_usuario(username)
    if user is None:
        flash("Usuario y/o contraseña incorrectas.")
        return render_template("index.html",
                               Alert="Usuario y/o contraseña incorrectas.")
    elif user[1] == username and check_password_hash(user[3], password):
        if user[5] == 1 or user[5] == 'True':
            create_session(user)
            resp = None
            if user[6] == 'True' or user[6] == 1:
                resp = make_response(redirect(url_for('admin')))
            else:
                resp = make_response(redirect(url_for('cashier')))
            resp.set_cookie('username', username)
            userID = str(user[0])
            resp.set_cookie('userID', userID)
            return resp
        return render_template(
            "index.html",
            Alert="Usuario deshabilitado, contacte al administrador.")
    return render_template("index.html",
                           Alert="Usuario y/o contraseña incorrectas.")
Пример #5
0
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')
Пример #6
0
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)
Пример #7
0
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')
Пример #8
0
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')
Пример #9
0
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)
Пример #10
0
def add_password(iduser, link):
    try:
        if request.method == 'POST':
            pws = escape(request.form['pws'])
            conf = escape(request.form['confirmacion'])
            if UT.isPasswordValid(pws):
                if UT.isPasswordValid(conf):
                    if pws == conf:
                        iduser = iduser
                        res = views.actclave(iduser, pws)
                        flash(res)
                        flash('Clave asignada con éxito')
                        return render_template('login.html')
                    else:  #diferente pws y conf
                        flash('La contraseña y su verificacion no coinciden')
                else:  #la verificacion no reune las caracteristicas
                    flash('La confirmacion no es correcta')
            else:  #la contraseña no reune las caracteristicas
                flash('La contraseña no es valida')
        inst = contrasena()  # Una instancia del formulario
        return render_template('password.html', form=inst)
    except:
        pass
Пример #11
0
def recuperar(recuperacion):
    olv = NuevaContraseña()
    if request.method == 'POST':
        contraseña = request.form.get('contraseña')
        if not utils.isPasswordValid(contraseña):
            flash(
                'La contraseña debe tener al menos una mayúscula y un número')
            return render_template('Recuperar.html', olv=olv)
        db = get_db()
        db.execute("update usuario set contraseña = ? where activacion = ?",
                   (contraseña, recuperacion))
        db.commit()
        return redirect(url_for('iniciarsesion'))
    return render_template('Recuperar.html', olv=olv)
Пример #12
0
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')
Пример #13
0
def login():
    try:
        if request.method == 'POST':
            usuario = request.form['usuario'] 
            clave = request.form['clave']  
         
            if utils.isUsernameValid(usuario):
                if utils.isPasswordValid(clave):
                    return render_template("Busqueda.html")
                else:
                    return "Contraseña no valida: " + clave
            else:
                return "Usuario no valido: " + usuario
        
        else:
            return render_template('inicioSesion.html')
    except:
      return render_template('inicioSesion.html')
Пример #14
0
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')
Пример #15
0
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."
        )
Пример #16
0
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."
    )
Пример #17
0
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')
Пример #18
0
def reset_confirmation():
    max_time_to_respond = 10
    if request.method == "GET":
        recoveryKey = request.args.get('recoveryKey')
        if utils.isTextValid(recoveryKey):
            register = CRUD.check_recovery_data(recoveryKey)
            if register != None:
                now = datetime.datetime.now()
                registerTime = datetime.datetime.strptime(
                    register[3], "%Y-%m-%d %H:%M:%S.%f")
                timeDifference = now - registerTime
                timeDifferenceMinutes = timeDifference.total_seconds() / 60
                if timeDifferenceMinutes < max_time_to_respond:
                    return render_template('reset-password-change.html',
                                           recoveryKey=recoveryKey)
        return redirect(url_for('index'))
    password = request.form['password']
    recoveryKey = request.form['recoveryKey']
    register = CRUD.check_recovery_data(recoveryKey)
    if not utils.isPasswordValid(password):
        return render_template('reset-password-change.html',
                               recoveryKey=recoveryKey,
                               Message="Contraseña no válida")
    if register != None:
        now = datetime.datetime.now()
        registerTime = datetime.datetime.strptime(register[3],
                                                  "%Y-%m-%d %H:%M:%S.%f")
        timeDifference = now - registerTime
        timeDifferenceMinutes = timeDifference.total_seconds() / 60
        if timeDifferenceMinutes < max_time_to_respond:
            hashed_password = generate_password_hash(password)
            CRUD.set_used_recovery_data(register[1])
            CRUD.update_password_recovery(register[1], hashed_password)
            return render_template('index.html',
                                   Alert="Contraseña cambiada con exito")
    return redirect(url_for('index'))
Пример #19
0
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')
Пример #20
0
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'))
Пример #21
0
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)
Пример #22
0
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')