Example #1
0
def ban_user(user_id=None):
    if not can_ban_user(current_user):
        flash(_("You do not have the permissions to ban this user."), "danger")
        return redirect(url_for("management.overview"))

    # ajax request
    if request.is_xhr:
        ids = request.get_json()["ids"]

        data = []
        users = User.query.filter(User.id.in_(ids)).all()
        for user in users:
            # don't let a user ban himself and do not allow a moderator to ban
            # a admin user
            if current_user.id == user.id or \
                    user.get_permissions()['admin'] and \
                    (current_user.permissions['mod'] or
                     current_user.permissions['super_mod']):
                continue

            elif user.ban():
                data.append({
                    "id":
                    user.id,
                    "type":
                    "ban",
                    "reverse":
                    "unban",
                    "reverse_name":
                    _("Unban"),
                    "reverse_url":
                    url_for("management.unban_user", user_id=user.id)
                })

        return jsonify(message="{} Users banned.".format(len(data)),
                       category="success",
                       data=data,
                       status=200)

    user = User.query.filter_by(id=user_id).first_or_404()

    # Do not allow moderators to ban admins
    if user.get_permissions()['admin'] and \
            (current_user.permissions['mod'] or
             current_user.permissions['super_mod']):

        flash(_("A moderator cannot ban an admin user."), "danger")
        return redirect(url_for("management.overview"))

    if not current_user.id == user.id and user.ban():
        flash(_("User is now banned."), "success")
    else:
        flash(_("Could not ban user."), "danger")

    return redirect(url_for("management.banned_users"))
Example #2
0
def ban_user(user_id=None):
    if not can_ban_user(current_user):
        flash(_("You do not have the permissions to ban this user."), "danger")
        return redirect(url_for("management.overview"))

    # ajax request
    if request.is_xhr:
        ids = request.get_json()["ids"]

        data = []
        users = User.query.filter(User.id.in_(ids)).all()
        for user in users:
            # don't let a user ban himself and do not allow a moderator to ban
            # a admin user
            if current_user.id == user.id or \
                    user.get_permissions()['admin'] and \
                    (current_user.permissions['mod'] or
                     current_user.permissions['super_mod']):
                continue

            elif user.ban():
                data.append({
                    "id": user.id,
                    "type": "ban",
                    "reverse": "unban",
                    "reverse_name": _("Unban"),
                    "reverse_url": url_for("management.unban_user",
                                           user_id=user.id)
                })

        return jsonify(
            message="{} Users banned.".format(len(data)),
            category="success",
            data=data,
            status=200
        )

    user = User.query.filter_by(id=user_id).first_or_404()

    # Do not allow moderators to ban admins
    if user.get_permissions()['admin'] and \
            (current_user.permissions['mod'] or
             current_user.permissions['super_mod']):

        flash(_("A moderator cannot ban an admin user."), "danger")
        return redirect(url_for("management.overview"))

    if not current_user.id == user.id and user.ban():
        flash(_("User is now banned."), "success")
    else:
        flash(_("Could not ban user."), "danger")

    return redirect(url_for("management.banned_users"))
Example #3
0
def unban_user(user_id):
    if not can_ban_user(current_user):
        flash("You do not have the permissions to unban this user.")
        return redirect(url_for("management.overview"))

    user = User.query.filter_by(id=user_id).first_or_404()

    if user.unban():
        flash("User is now unbanned.", "success")
    else:
        flash("Could not unban user.", "danger")

    return redirect(url_for("management.banned_users"))
Example #4
0
def unban_user(user_id):
    if not can_ban_user(current_user):
        flash("You do not have the permissions to unban this user.")
        return redirect(url_for("management.overview"))

    user = User.query.filter_by(id=user_id).first_or_404()

    if user.unban():
        flash("User is now unbanned.", "success")
    else:
        flash("Could not unban user.", "danger")

    return redirect(url_for("management.banned_users"))
Example #5
0
def ban_user(user_id):
    if not can_ban_user(current_user):
        flash(_("You do not have the permissions to ban this user."), "danger")
        return redirect(url_for("management.overview"))

    user = User.query.filter_by(id=user_id).first_or_404()

    # Do not allow moderators to ban admins
    if user.get_permissions()['admin'] and \
            (current_user.permissions['mod'] or
             current_user.permissions['super_mod']):

        flash(_("A moderator cannot ban an admin user."), "danger")
        return redirect(url_for("management.overview"))

    if user.ban():
        flash(_("User is now banned."), "success")
    else:
        flash(_("Could not ban user."), "danger")

    return redirect(url_for("management.banned_users"))
Example #6
0
def ban_user(user_id):
    if not can_ban_user(current_user):
        flash("You do not have the permissions to ban this user.")
        return redirect(url_for("management.overview"))

    user = User.query.filter_by(id=user_id).first_or_404()

    # Do not allow moderators to ban admins
    if user.get_permissions()['admin'] and \
            (current_user.permissions['mod'] or
                current_user.permissions['super_mod']):

            flash("A moderator cannot ban an admin user.", "danger")
            return redirect(url_for("management.overview"))

    if user.ban():
        flash("User was banned successfully.", "success")
    else:
        flash("Could not ban user.", "danger")

    return redirect(url_for("management.banned_users"))
Example #7
0
def unban_user(user_id=None):
    if not can_ban_user(current_user):
        flash(_("You do not have the permissions to unban this user."),
              "danger")
        return redirect(url_for("management.overview"))

    # ajax request
    if request.is_xhr:
        ids = request.get_json()["ids"]

        data = []
        for user in User.query.filter(User.id.in_(ids)).all():
            if user.unban():
                data.append({
                    "id":
                    user.id,
                    "type":
                    "unban",
                    "reverse":
                    "ban",
                    "reverse_name":
                    _("Ban"),
                    "reverse_url":
                    url_for("management.ban_user", user_id=user.id)
                })

        return jsonify(message="{} Users unbanned.".format(len(data)),
                       category="success",
                       data=data,
                       status=200)

    user = User.query.filter_by(id=user_id).first_or_404()

    if user.unban():
        flash(_("User is now unbanned."), "success")
    else:
        flash(_("Could not unban user."), "danger")

    return redirect(url_for("management.banned_users"))
Example #8
0
def unban_user(user_id=None):
    if not can_ban_user(current_user):
        flash(_("You do not have the permissions to unban this user."),
              "danger")
        return redirect(url_for("management.overview"))

    # ajax request
    if request.is_xhr:
        ids = request.get_json()["ids"]

        data = []
        for user in User.query.filter(User.id.in_(ids)).all():
            if user.unban():
                data.append({
                    "id": user.id,
                    "type": "unban",
                    "reverse": "ban",
                    "reverse_name": _("Ban"),
                    "reverse_url": url_for("management.ban_user",
                                           user_id=user.id)
                })

        return jsonify(
            message="{} Users unbanned.".format(len(data)),
            category="success",
            data=data,
            status=200
        )

    user = User.query.filter_by(id=user_id).first_or_404()

    if user.unban():
        flash(_("User is now unbanned."), "success")
    else:
        flash(_("Could not unban user."), "danger")

    return redirect(url_for("management.banned_users"))