def all_table(cls):
        preceptores = cls.all()

        for dict_item in preceptores:
            usuario_id = dict_item["usuario_id"]
            if usuario_id:

                user = User.find_by_id(usuario_id)
                dict_item["username"] = user["username"]
            dict_item["fecha_nacimiento"] = dict_item["fecha_nac"].strftime("%d-%m-%Y")
            del dict_item["fecha_nac"]
            loc = localidad(dict_item["localidad_id"])
            dict_item["localidad"] = loc["nombre"]
            del dict_item["localidad_id"]

            dict_item["genero"] = Genero.find_by_id(dict_item["genero_id"])[0]["nombre"]
            del dict_item["genero_id"]
            tipo_doc = tipo_documento(dict_item["tipo_doc_id"])
            dict_item["tipo_documento"] = tipo_doc["nombre"]
            del dict_item["tipo_doc_id"]
            dict_item["created_at"] = dict_item["created_at"].strftime(
                "%d-%m-%Y %H:%M:%S"
            )
            dict_item["updated_at"] = dict_item["updated_at"].strftime(
                "%d-%m-%Y %H:%M:%S"
            )

        return preceptores
Пример #2
0
def data():
    s_config = siteconfig.get_config()
    if not has_permission("docente_show", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    id = request.args.get("id")
    if id:

        docente = Docente.find_by_id(id)

        if docente is not None:
            docente["fecha_nac"] = datetime.strftime(docente["fecha_nac"],
                                                     "%d/%m/%Y")
            usuario_id = docente["usuario_id"]
            if usuario_id:

                user = User.find_by_id(usuario_id)
                docente["username"] = user["username"]
            data = jsonify(docente)
            return make_response(data, 200)
        else:
            abort(422)
    else:
        abort(400)
Пример #3
0
def update():
    if not authenticated(session):
        return render_template('auth/login.html')
    ok = True
    if not pageState():
        ok = False
        for permiso in session['permisos']:
            if "VER_EN_MANTENIMIENTO" == permiso['nombre']:
                ok = True
    if not ok:
        return render_template('error/mantenimiento.html')
    msj = ""
    try:
        formCU = CreateUserForm(request.form)
        User.db = get_db()
        User.db.autocommit = False
        usuarioSesion = int(request.form['id']) == int(session['id'])
        if createIsValid(formCU, request.form['oldEmail'],
                         request.form['oldUsuario'], usuarioSesion):
            # actualizo los datos del usuario
            User.update(request.form['email'], request.form['usuario'],
                        request.form['password'], request.form['firstName'],
                        request.form['lastName'], int(request.form['id']))

            if (not usuarioSesion):
                # elimino los roles asociados anteriores
                User.remove_roles_de_usuario(int(request.form['id']))
                # obtengo los roles seleccionados y los agrego
                for rolSelected in request.form.getlist("roles"):
                    idRol = int(rolSelected)
                    User.add_role(int(request.form['id']), idRol)

            msj = "Se modificó con éxito"
            User.db.commit()
            #si el usuario modifica su propia información de usuario => actualizo los datos de la sesión
            if usuarioSesion:
                actualizarSession()

            flash("Se modificó con éxito", "success")
            if usuarioSesion:
                return redirect(url_for('user_perfil'))
            else:
                return redirect(url_for('listado_usuarios'))

    except Exception as e:
        msj = str(e)
        User.db.rollback()
        rolesUsuario = request.form.getlist("roles")
        roles = Roles.all()
        user = User.find_by_id(request.form['id'])
        return render_template("user/modificarUsr.html",
                               titulo=msj,
                               user=user,
                               form=formCU,
                               roles=roles,
                               rolesUsuario=rolesUsuario,
                               usuarioSesion=usuarioSesion,
                               formRequest=request.form)
Пример #4
0
def perfil():
    if not authenticated(session):
        return render_template('auth/login.html')
    ok = True
    if not pageState():
        ok = False
        for permiso in session['permisos']:
            if "VER_EN_MANTENIMIENTO" == permiso['nombre']:
                ok = True
    if not ok:
        return render_template('error/mantenimiento.html')

    User.db = get_db()
    user = User.find_by_id(session['id'])
    return render_template('user/perfil.html', user=user)
Пример #5
0
def save():
    id = request.form["id"]
    edit_user = to_usuario(request.form)
    user = User.find_by_username(edit_user.username)
    user_same = User.find_by_id(id)
    if user is None:
        User.update(edit_user, request.form.getlist("rol"), id)
        return redirect(url_for('user_index'))
    elif (user_same.username == edit_user.username
          or user_same.email == edit_user.email) and user is None:
        User.update(edit_user, request.form.getlist("rol"), edit_user.id)
        return redirect(url_for('user_index'))
    else:
        mensaje = "El usuario ya existe"
        return render_template('user/index.html', mensaje=mensaje)
Пример #6
0
def getUpdateUser(id_data):
    if auth.authenticated():
        #Obtiene permisos del usuario
        User.db = get_db()
        if (User.tiene_permiso(session['id'], 'usuario_update')):
            user = User.find_by_id(id_data)
            roles = User.get_rol(id_data)
            #Obtiene roles
            Rol.db = get_db()
            roles_lista = Rol.all()
            #Retorna el template
            return render_template('auth/panel_components/usuario_update.html',
                                   user=user,
                                   roles=roles,
                                   roles_lista=roles_lista)
        else:
            abort(401)
    else:
        return redirect(url_for('auth_login'))
Пример #7
0
def user_data():
    s_config = siteconfig.get_config()
    if not has_permission("usuario_index", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    # Por id
    id = request.args.get("id")
    if id:

        user = User.find_by_id(id)
        if user is not None:
            user["roles"] = User.user_roles(user["username"])
            data = jsonify(user)
            return make_response(data, 200)
        else:
            abort(422)
    else:
        abort(400)
Пример #8
0
def edit(id):
    aUser = User.find_by_id(id)
    roles = RolModel.all()
    return render_template('user/edit.html', aUser=aUser, roles=roles)
Пример #9
0
def update():
    s_config = siteconfig.get_config()
    if not has_permission("usuario_update", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    form = UserUpdateForm()

    op_response = dict()

    if form.validate_on_submit():
        params = request.form.to_dict()
        params["roles"] = request.form.getlist("rol_id")

        if "activo" in params:
            params["activo"] = 1
        else:
            params["activo"] = 0

        uid = params["id"]
        old_email = User.find_by_id(uid)["email"]

        updated = User.update(params)

        if updated:
            # armo el string de roles para el mail
            roles_dict = User.user_roles(params["username"])
            roles_names = ""
            first = True
            for rol in roles_dict:
                if first:
                    first = False
                else:
                    roles_names += ", "
                roles_names += rol["nombre"]

            new_email = User.find_by_id(uid)["email"]

            if old_email != new_email:
                # Mail al email viejo
                html = render_template("emails/mail_oldmail_change.html",
                                       nombre=params["first_name"])
                send_async(
                    old_email,
                    "Email Modificado | Grupo2 - Orquesta Escuela de Berisso",
                    html,
                )

                # Mail al email nuevo
                html = render_template("emails/mail_newmail_change.html",
                                       nombre=params["first_name"])
                send_async(
                    new_email,
                    "Email Modificado | Grupo2 - Orquesta Escuela de Berisso",
                    html,
                )

            # Mail por defecto de que hubo un update
            html = render_template("emails/mail_update_usuario.html",
                                   params=params,
                                   roles=roles_names)
            send_async(
                params["email"],
                "Cuenta Modificada | Grupo2 - Orquesta Escuela de Berisso",
                html,
            )

            op_response["msg"] = "Se ha modificado al usuario con éxito"
            op_response["type"] = "success"
        else:
            op_response[
                "msg"] = "El nombre de usuario está en uso, intente con otro"
            op_response["type"] = "error"
            abort(make_response(jsonify(op_response), 422))

    else:
        if len(form.errors) >= 2:
            op_response[
                "msg"] = "Complete todos los datos del usuario a modificar"
            op_response["type"] = "error"
        else:
            error_msg = "".join(list(form.errors.values())[0]).strip("'[]")
            op_response["msg"] = error_msg
            op_response["type"] = "error"

        abort(make_response(jsonify(op_response), 400))

    return make_response(jsonify(op_response), 200)