Ejemplo n.º 1
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)
Ejemplo n.º 2
0
def create():
    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

        if createIsValid(formCU):

            res = User.create(request.form['email'], request.form['usuario'],
                              request.form['password'],
                              request.form['firstName'],
                              request.form['lastName'])
            for rolSelected in request.form.getlist("roles"):
                idRol = int(rolSelected)
                User.add_role(res['idInsertado'], idRol)

            User.db.commit()

            flash("Se creó con éxito", "success")
            return redirect(url_for('listado_usuarios'))

    except Exception as e:
        msj = str(e)
        User.db.rollback()
        rolesUsuario = request.form.getlist("roles")
        roles = Roles.all()
        return render_template("user/registrarUsr.html",
                               titulo=msj,
                               form=formCU,
                               roles=roles,
                               rolesUsuario=rolesUsuario,
                               formRequest=request.form)
Ejemplo n.º 3
0
def update_roles(user_id, post_data):
    admin_id = 1 #Role.get_id_by_name('Administrador')
    teacher_id = 2 #Role.get_id_by_name('Docente')
    preceptor_id = 3 #Role.get_id_by_name('Preceptor')

    if (post_data['is_admin']):
        User.add_role(user_id, admin_id)
    else:
        User.remove_role(user_id, admin_id)

    if (post_data['is_teacher']):
        User.add_role(user_id, teacher_id)
    else:
        User.remove_role(user_id, teacher_id)

    if (post_data['is_preceptor']):
        User.add_role(user_id, preceptor_id)
    else:
        User.remove_role(user_id, preceptor_id)

    return True