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")
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)
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)
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)
def def_clave(self, password): self.hash_clave = genph(password)
def def_clave(self, clave): #generar la clave hash a partir del argumento clave self.hash_clave = genph(clave)
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)