コード例 #1
0
def ingresar():
    if (request.method == 'GET'):
        if 'nombre' in session:
            return render_template('index.html')
        else:
            return render_template('login.html')
    else:
        nombre = request.form['username']
        contrasena = request.form['pass']
        session['nombre'] = nombre
        hash_contrasena = genph(contrasena)
        usuario = mysql.query_db(
            "select nombre, contrasena, rol from users where nombre =%s",
            [nombre])
        print('usuario:', usuario)
        if (len(usuario) != 0):
            print(usuario
                  )  #diccionario [{'nombre': 'admin', 'contrasena': 'admin'}]
            for row in usuario:
                username = row['nombre']
                password = row['contrasena']
                rol = row['rol']
                print(username, password, rol)

            if (checkph(hash_contrasena, password)):
                if rol == 'Administrador':
                    return redirect(url_for('busqueda_adm', usr=username))
                else:
                    return redirect(url_for('busqueda', usr=username))
            else:
                # Flask("La contraseña es incorrecta", "alert-warning")
                return render_template("login.html")
        else:
            return render_template("login.html")
コード例 #2
0
def register():
    if request.method == "POST":
        print(request.form)
        try:
            newName = Markup.escape(request.form["username"])
            newEmail = Markup.escape(request.form["email"])
            newPass = genph(request.form["password"])
            newID = uuid4()

            executeQuery(
                "INSERT INTO users (idUser, nameUser, emailUser, passUser) VALUES ('{0}', '{1}', '{2}', '{3}')"
                .format(newID, newName, newEmail, newPass))
        except Exception as e:

            print("Error: ", e)
            return jsonify(message="No ta bien", code=1)

        return jsonify(message="Ta bien", code=0)
コード例 #3
0
def register():
    form = RegisterForm()

    if form.validate_on_submit():
        # No los puedo subir si están duplicados.
        user = User(
            username=form.username.data,
            hash_password=genph(form.password.data),
            # date.today().isoformat()
            # created_date = date.today(),
            created_date=datetime.datetime.utcnow()
        )
        db.session.add(user)
        db.session.commit()

        # Confirmación por correo algún dia lo voy a implementar
        '''
            subject = "Confirm your email"
            token = ts.dumps(form.email.data, salt='email-confirm-key')
            confirm_url = url_for(
                'confirm_email',
                token=token,
                _external=True
            )
            html = render_template(
                'email/activate.html',
                confirm_url=confirm_url
            )
            send_email(form.email.data, subject, html)
        '''
        return redirect(
            url_for(
                'routes.login',
                msg='Registrado! Ahora podés ingresar.'
            )
        )
    return render_template('auth/register.html', form=form)
コード例 #4
0
def upload():
    form = UploadForm()
    password = session.get('password', None)
    if not password:
        session['password'] = strgen.StringGenerator("[\\d\\w]{50}").render()
    post_password = session['password']
    form.password.data = post_password

    lista_categorias = CategoryList.query.all()

    # Hacerlo de una forma más pythonica o como quiera que se diga.
    Categorias = [('', "Elegir Categoría")]
    for c in lista_categorias:
        Categorias.append((c.name, c.name.title()))
    form.category.choices = Categorias

    print(form.errors)

    if form.validate_on_submit():

        # ¿Existe la categoría a la que intentás agregar un post?
        # Pensarlo mejor
        c = CategoryList.query.filter_by(name=form.category.data).first()
        if c is None:
            return redirect(
                url_for('routes.output', msg='No existe esa categoría'))

        # Quiero el nombre del archivo para obtener la extensión,
        # pero no voy a usar el nombre del archivo para identificarlo
        file_data = GenerateFilename(form.files.data.filename)

        print("Vamos a intentar guardarlo \
              como {}".format(file_data['name']))

        # Compruebo que no esté usado.
        name_used = FilePost.query.filter_by(file=file_data['name']).first()
        # Si está usado generá otro hasta que no lo esté.
        print('Name_used vale %s' % name_used)
        while (name_used is not None):
            file_data = GenerateFilename(form.files.data.filename)

            name_used = FilePost.query.filter_by(
                file=file_data['name']).first()
            print("El nombre del archivo estaba \
                  usado voy a usar este {}\
                  en su lugar".format(file_data['name']))

        # Ahora debería guardar el catalogo del negocio en la db
        new_post = Post(
            subject=form.subject.data,
            desc=form.desc.data,
            # Crear el thumbnail pequeño
            thumbnail=file_data['name'],
            hash_password=genph(form.password.data),
            thumbnail_max=file_data['name'],
            # tags = form.tags.data,
            # cambiar a category
            created_date=datetime.datetime.utcnow(),
            views=0,
            total_comments=0,
            total_thanks=0,
            hidden=False,
        )
        db.session.add(new_post)
        db.session.commit()

        file = form.files.data

        file.save(
            os.path.join(current_app.config['UPLOAD_FOLDER'], 'images',
                         file_data['name']))

        new_post_files = FilePost(post_id=new_post.id,
                                  file=file_data['name'],
                                  extension=file_data['ext'])
        db.session.add(new_post_files)
        db.session.commit()

        # Agrego una categoría al post, si no existe no deberías poder
        # agregar un post a una categoría inexistente
        new_post_category = Category(category=c, post_id=new_post.id)

        db.session.add(new_post_category)
        db.session.commit()

        tags = form.tags.data.split(' ')
        print(tags)

        for tag in tags:
            new_post_tag = Tag(tag_name=tag, )
            new_post.tags.append(new_post_tag)

        db.session.commit()

        return redirect(url_for('routes.view', id=new_post.id))

    return render_template('upload.html',
                           nbar='upload',
                           form=form,
                           lista_categorias=lista_categorias)
コード例 #5
0
 def def_clave(self, password):
     self.hash_clave = genph(password)
コード例 #6
0
ファイル: modelos.py プロジェクト: GuillermoLB/Raspi
 def def_clave(self,
               clave):  #generar la clave hash a partir del argumento clave
     self.hash_clave = genph(clave)
コード例 #7
0
def view(id=None):
    form = CommentForm()

    password = session.get('password', None)
    if not password:
        session['password'] = strgen.StringGenerator("[\\d\\w]{50}").render()

    comment_password = session['password']
    form.password.data = comment_password

    post = Post.query.get_or_404(id)
    '''
        post.desc =
        regex.sub(r'(?<!//.+)->', '.', line)
        var cite = />>(.*?)->/g;
    '''
    comments = Comment.query.filter_by(post_id=id)

    post.views += 1
    db.session.commit()

    category = Category.query.filter_by(post_id=id).first()
    if category is None:
        return redirect(
            url_for('routes.output',
                    msg="Cuando creaste el post \
                pusiste una categoría que ahora no existe."))

    if form.validate_on_submit():
        print(form.file.data)

        # Quiero el nombre del archivo para obtener la extensión,
        # pero no voy a usar el nombre del archivo para identificarlo
        file_data = GenerateFilename(
            form.file.data.filename) if (form.file.data is not None) else {
                'name': '',
                'ext': ''
            }

        new_comment = Comment(post_id=id,
                              comment=form.comment.data,
                              hash_password=genph(form.password.data),
                              subject=form.subject.data,
                              created_date=datetime.datetime.utcnow(),
                              filename=file_data['name'],
                              file_ext=file_data['ext'])

        db.session.add(new_comment)
        db.session.commit()

        post.total_comments += 1
        db.session.commit()

        file = form.file.data

        if file is not None:
            file.save(
                os.path.join(current_app.config['UPLOAD_FOLDER'], 'images',
                             file_data['name']))

        return redirect(url_for('routes.view', id=id))

    return render_template('view.html',
                           post=post,
                           category=category.category.name,
                           form=form,
                           bbcode=bbcode,
                           parser=parser,
                           comments=comments)