def update_user(object_id): form = EditUserForm(request.form) if form.validate(): u = User.get_by_id(object_id) if u: u.update(email=thwart(form.email.data), username=thwart(form.username.data), first_name=thwart(form.first_name.data), last_name=thwart(form.last_name.data)) if form.password.data != '': u.set_password(thwart(form.password.data)) if form.active.data != u.active: activate(u) if form.active.data else deactivate(u) u.set_roles(list(form.user_roles.data)) try: u.updated() dbSession.commit() except IntegrityError: flash("Ya existe un usuario con ese correo/username", "danger") return render_template('user/update.html', form=form, user_id=object_id) flash("Usuario {} actualizado exitosamente.".format(u.username), "success") return redirect(url_for("user_index")) if form.errors: display_errors( form.errors ) # si hay errores redirecciona a la pagina de crear usuario y muestra los errores. flash("Error al validar formulario", "danger") return redirect(url_for("user_index"))
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 create(): """ Da de alta un centro en la base de datos.""" form = CreateCenterForm() app.logger.info(form.data) if form.validate(): center = Center() form.populate_obj(center) center.protocol = request.files['protocol'].read() dbSession.add(center) dbSession.commit() if form.errors: display_errors(form.errors) return redirect(url_for("center_new")) return redirect(url_for("center_index", page=1))
def create_view(center_id): """Recibe el id del centro al que pertenece el turno. Crea un turno siempre y cuando haya disponibilidad en el día elegido.""" form = CreateShiftForm() if form.validate(): shift = Shifts() form.populate_obj(shift) shift.center_id = center_id try: center = Center.get_by_id(shift.center_id) Shifts.create_shift(shift, center) flash("Turno agregado exitosamente", "success") except (NoResultFound, ValueError) as err: flash(err, "danger") if form.errors: display_errors(form.errors) return redirect(url_for("turnos_new", center_id=center_id)) return redirect(url_for("turnos_index", page=1))
def update_center(object_id): """ edita los atributos del centro con los datos obtenidos del formulario """ form = CreateCenterForm(request.form) if form.validate(): try: center = Center.get_by_id(object_id) except NoResultFound as e: flash(e, 'danger') return redirect(url_for("center_index")) form.populate_obj(center) center.protocol = request.files['protocol'].read() dbSession.commit() elif form.errors: display_errors(form.errors) flash("Error al validar formulario", "danger") return update_center_form(object_id) flash("se guardaron los cambios", "info") return redirect(url_for("center_index"))
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 create(): """ Da de alta un usuario en la base de datos.""" form = CreateUserForm(request.form) if form.validate(): user = User(email=thwart(form.email.data), username=thwart(form.username.data), first_name=thwart(form.first_name.data), last_name=thwart(form.last_name.data), active=form.active.data) user.set_roles(list(form.user_roles.data)) user.set_password(thwart( form.password.data)) # envio la pw para guardar el hash en la db. dbSession.add(user) dbSession.commit() if form.errors: display_errors( form.errors ) # si hay errores redirecciona a la pagina de crear usuario y muestra los errores. return redirect(url_for("user_new")) return redirect(url_for("user_index", page=1))