Esempio n. 1
0
def set_user_active_state(user_id, state):

    if not is_admin():
        flask.abort(401)

    if state.upper() == "TRUE":
        state = True
    elif state.upper() == "FALSE":
        state = False
    else:
        flask.abort(422)

    try:
        user = Session.query(
            models.User).filter(models.User.id == user_id).one()
    except Exception as err:
        _log.exception(err)
        user = None

    if not user:
        flask.abort(404)

    form = anitya.forms.ConfirmationForm()

    if form.validate_on_submit():
        try:
            user.active = state
            Session.add(user)
            Session.commit()
            if state:
                flask.flash("User {0} is no longer banned".format(
                    user.username))
            else:
                flask.flash("User {0} is banned".format(user.username))
        except Exception as err:
            _log.exception(err)
            flask.flash(str(err), "errors")
            Session.rollback()

    return flask.redirect(flask.url_for("anitya_ui.browse_users"))
Esempio n. 2
0
def set_user_active_state(user_id, state):

    if not is_admin():
        flask.abort(401)

    if state.upper() == "TRUE":
        state = True
    elif state.upper() == "FALSE":
        state = False
    else:
        flask.abort(422)

    try:
        user = Session.query(models.User).filter(models.User.id == user_id).one()
    except Exception as err:
        _log.exception(err)
        user = None

    if not user:
        flask.abort(404)

    form = anitya.forms.ConfirmationForm()

    if form.validate_on_submit():
        try:
            user.active = state
            Session.add(user)
            Session.commit()
            if state:
                flask.flash("User {0} is no longer banned".format(user.username))
            else:
                flask.flash("User {0} is banned".format(user.username))
        except Exception as err:
            _log.exception(err)
            flask.flash(str(err), "errors")
            Session.rollback()

    return flask.redirect(flask.url_for("anitya_ui.browse_users"))
Esempio n. 3
0
def browse_users():

    if not is_admin():
        flask.abort(401)

    user_id = flask.request.args.get("user_id", None)
    username = flask.request.args.get("username", None)
    email = flask.request.args.get("email", None)
    admin = flask.request.args.get("admin", None)
    active = flask.request.args.get("active", None)
    limit = flask.request.args.get("limit", 50)
    page = flask.request.args.get("page", 1)

    try:
        page = int(page)
    except ValueError:
        page = 1

    if admin:
        if admin.upper() == "TRUE":
            admin = True
        elif admin.upper() == "FALSE":
            admin = False
        else:
            admin = None

    if active:
        if active.upper() == "TRUE":
            active = True
        elif active.upper() == "FALSE":
            active = False
        else:
            active = None

    try:
        limit = int(limit)
    except ValueError:
        limit = 50
        flask.flash("Incorrect limit provided, using default", "errors")

    offset = 0
    if page is not None and limit is not None and limit > 0:
        offset = (page - 1) * limit

    users = []
    cnt_users = 0
    try:
        users_query = Session.query(models.User)

        if user_id:
            users_query = users_query.filter_by(id=user_id)

        if username:
            users_query = users_query.filter_by(username=username)

        if email:
            users_query = users_query.filter_by(email=email)

        if admin is not None:
            users_query = users_query.filter_by(admin=admin)

        if active is not None:
            users_query = users_query.filter_by(active=active)

        if offset > 0:
            users_query = users_query.offset(offset)
        if limit > 0:
            users_query = users_query.limit(limit)

        users = users_query.all()
        cnt_users = users_query.count()
    except Exception as err:
        _log.exception(err)
        flask.flash(err, "errors")

    try:
        total_page = int(ceil(cnt_users / float(limit)))
    except ZeroDivisionError:
        total_page = 1

    form = anitya.forms.ConfirmationForm()

    return flask.render_template(
        "users.html",
        current="users",
        users=users,
        cnt_users=cnt_users,
        total_page=total_page,
        form=form,
        page=page,
        username=username or "",
        email=email or "",
        user_id=user_id or "",
        admin=admin,
        active=active,
    )
Esempio n. 4
0
def browse_users():

    if not is_admin():
        flask.abort(401)

    user_id = flask.request.args.get("user_id", None)
    username = flask.request.args.get("username", None)
    email = flask.request.args.get("email", None)
    admin = flask.request.args.get("admin", None)
    active = flask.request.args.get("active", None)
    limit = flask.request.args.get("limit", 50)
    page = flask.request.args.get("page", 1)

    try:
        page = int(page)
    except ValueError:
        page = 1

    if admin:
        if admin.upper() == "TRUE":
            admin = True
        elif admin.upper() == "FALSE":
            admin = False
        else:
            admin = None

    if active:
        if active.upper() == "TRUE":
            active = True
        elif active.upper() == "FALSE":
            active = False
        else:
            active = None

    try:
        limit = int(limit)
    except ValueError:
        limit = 50
        flask.flash("Incorrect limit provided, using default", "errors")

    offset = 0
    if page is not None and limit is not None and limit > 0:
        offset = (page - 1) * limit

    users = []
    cnt_users = 0
    try:
        users_query = Session.query(models.User)

        if user_id:
            users_query = users_query.filter_by(id=user_id)

        if username:
            users_query = users_query.filter_by(username=username)

        if email:
            users_query = users_query.filter_by(email=email)

        if admin is not None:
            users_query = users_query.filter_by(admin=admin)

        if active is not None:
            users_query = users_query.filter_by(active=active)

        if offset > 0:
            users_query = users_query.offset(offset)
        if limit > 0:
            users_query = users_query.limit(limit)

        users = users_query.all()
        cnt_users = users_query.count()
    except Exception as err:
        _log.exception(err)
        flask.flash(err, "errors")

    try:
        total_page = int(ceil(cnt_users / float(limit)))
    except ZeroDivisionError:
        total_page = 1

    form = anitya.forms.ConfirmationForm()

    return flask.render_template(
        "users.html",
        current="users",
        users=users,
        cnt_users=cnt_users,
        total_page=total_page,
        form=form,
        page=page,
        username=username or "",
        email=email or "",
        user_id=user_id or "",
        admin=admin,
        active=active,
    )