def index(): sys = Sistema.get_sistema() try: page = int(request.args['page']) except (BadRequestKeyError, ValueError): page = 1 try: res = Page(User.query, page, sys.cant_por_pagina) # check User.query except AttributeError: # AttributeError raise when page<1 return redirect(url_for('user_index')) return render_template("user/index.html", pagination=res)
def authenticate(): """authenticate() realiza los chequeos necesarios para autorizar el ingreso del usuario al sistema. La funcion thwart del paquete pymsql se encarga de sanitizar el parametro para evitar posibles sql injections""" sis_config = Sistema.get_sistema() form = LoginForm(request.form) if form.validate(): username = thwart(form.username.data.lower()) password = thwart(form.password.data.lower()) app.logger.info("username {}".format(username)) user = User.query.filter(User.email == username).first( ) # primero compruebo el que exista el correo, sino voy por el nombre de usuario if user is not None: if user.check_password( password ) is False: # pregunto si la pw conincide con el hash almacenado flash("Usuario/Email o Clave incorrecto.", "danger") return redirect(url_for('auth_login')) else: # si llegué aca es porque no encontro el mail, pruebo buscando el username user = User.query.filter(User.username == username).first() if user is None: flash("Usuario/Email o Clave incorrecto.", "danger") return redirect(url_for('auth_login')) else: if user.check_password(password) is False: flash("Usuario/Email o Clave incorrecto.", "danger") return redirect(url_for('auth_login')) if not user.active: flash("La cuenta que has ingresado se encuentra inactiva.", "danger") return redirect(url_for('auth_login')) if not sis_config.habilitado and not user_has_permission( 'system_modify_config'): flash( "No puedes loguearte porque el sitio no esta disponible momentaneamente.", "danger") return redirect(url_for('home')) app.logger.info("user: %s", user) set_session(user) flash("La sesión se inició correctamente.", "success") return redirect(url_for("home")) if form.errors: display_errors(form.errors) return redirect(url_for("auth_login"))
def update(): form = SistemaForm(formdata=request.form) if form.validate_on_submit() and request.method == "POST": sistema = Sistema.get_sistema() sistema.titulo = thwart(form.titulo.data) sistema.descripcion = thwart(form.descripcion.data) sistema.bienvenida = thwart(form.bienvenida.data) sistema.email = thwart(form.email.data) sistema.cant_por_pagina = form.cant_por_pagina.data sistema.habilitado = form.habilitado.data sistema.__update__() dbSession.commit() flash("Configuración actualizada correctamente!", "success") # return redirect(url_for('')) else: display_errors(form.errors) # return redirect(url_for()) return redirect(url_for('system_configure'))
def index(date_start=date.today(), date_end=(datetime.now() + timedelta(2)).date()): shifts = Shifts.get_shifts_between() sys = Sistema.get_sistema() try: page = int(request.args['page']) if page < 0: flash("El número de página debe ser mayor o igual a 1.", "danger") return redirect(url_for('turnos_index')) except (BadRequestKeyError, ValueError): page = 1 res = Page(Shifts.query_shifts_between(date_start, date_end), page, sys.cant_por_pagina) search_donor_form = SearchDonorEmailForm() return render_template("shifts/index.html", pagination=res, date_start=date_start, date_end=date_end, shifts=shifts, search_donor_form=search_donor_form)
def search_by_center_name_paginated(cls, center_name, page=1): """Retorna una paginación con los turnos pertenecientes al centro 'center_name'""" sys = Sistema.get_sistema() query = Shifts.query_center_name(center_name) return Page(query, page, sys.cant_por_pagina)
def search_by_donor_email_paginated(cls, donor_email, page=1): """Retorna una paginación con los turnos que contengan donor_email""" sys = Sistema.get_sistema() query = Shifts.query_donor_email(donor_email) return Page(query, page, sys.cant_por_pagina)
def find_by_status_paginated(status, page=1): """Retornauna paginación con los usuarios con el estado recibido""" query = User.query_by_status(status) sys = Sistema.get_sistema() return Page(query, page, sys.cant_por_pagina)
def find_by_username_paginated(username, page=1): """Retorna una paginación con los usuarios que contengan username en su nombre de usuario""" sys = Sistema.get_sistema() query = User.query_by_username(username) return Page(query, page, sys.cant_por_pagina)
import io from flask import redirect, render_template, request, url_for, flash, send_file, current_app as app from flask_sqlalchemy import Pagination from sqlalchemy.exc import IntegrityError from sqlalchemy.orm.exc import NoResultFound from werkzeug.exceptions import BadRequestKeyError from pymysql import escape_string as thwart from app import dbSession from app.helpers.auth import restricted from app.helpers.handler import display_errors from app.helpers.pagination import Page from app.models.center import Center from app.models.sistema import Sistema from app.resources.forms import CreateCenterForm SYS_PAGE_COUNT = Sistema.page_count() @restricted(perm='centro_index') def index(): try: page = int(request.args['page']) except (BadRequestKeyError, ValueError): page = 1 try: res = Page(Center.get_for_index(), page, SYS_PAGE_COUNT) except AttributeError: return redirect(url_for('center_index')) return render_template("center/index.html", pagination=res)
def show(): sistema = Sistema.get_sistema() form = SistemaForm(obj=sistema) return render_template("sistema/config-sistema.html", form=form)