diff --git a/files/routes/admin.py b/files/routes/admin.py index 38b1c6ff5..928d963c6 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -508,25 +508,24 @@ def under_attack(v): return {"message": f"Under attack mode {enable_disable_str}d!"} @app.get("/admin/badge_grant") +@app.get("/admin/badge_remove") @admin_level_required(PERMS['USER_BADGES']) @feature_required('BADGES') def badge_grant_get(v): + grant = request.url.endswith("grant") badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() - return render_template("admin/badge_grant.html", v=v, badge_types=badges) - + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=grant) @app.post("/admin/badge_grant") @limiter.limit("1/second;30/minute;200/hour;1000/day") @admin_level_required(PERMS['USER_BADGES']) @feature_required('BADGES') def badge_grant_post(v): - - badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() user = get_user(request.values.get("username").strip(), graceful=True) if not user: - return render_template("admin/badge_grant.html", v=v, badge_types=badges, error="User not found.") + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=True, error="User not found.") try: badge_id = int(request.values.get("badge_id")) except: abort(400) @@ -538,7 +537,7 @@ def badge_grant_post(v): abort(403) if user.has_badge(badge_id): - return render_template("admin/badge_grant.html", v=v, badge_types=badges, error="User already has that badge.") + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=True, error="User already has that badge.") new_badge = Badge(badge_id=badge_id, user_id=user.id) @@ -564,34 +563,18 @@ def badge_grant_post(v): _note=new_badge.name ) g.db.add(ma) - - return render_template("admin/badge_grant.html", v=v, badge_types=badges, msg=f"{new_badge.name} Badge granted to @{user.username} successfully!") - - - -@app.get("/admin/badge_remove") -@admin_level_required(PERMS['USER_BADGES']) -@feature_required('BADGES') -def badge_remove_get(v): - - - badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() - - return render_template("admin/badge_remove.html", v=v, badge_types=badges) - + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=True, msg=f"{new_badge.name} Badge granted to @{user.username} successfully!") @app.post("/admin/badge_remove") @limiter.limit("1/second;30/minute;200/hour;1000/day") @admin_level_required(PERMS['USER_BADGES']) @feature_required('BADGES') def badge_remove_post(v): - - badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() user = get_user(request.values.get("username").strip(), graceful=True) if not user: - return render_template("admin/badge_remove.html", v=v, badge_types=badges, error="User not found.") + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=False, error="User not found.") try: badge_id = int(request.values.get("badge_id")) except: abort(400) @@ -601,7 +584,7 @@ def badge_remove_post(v): badge = user.has_badge(badge_id) if not badge: - return render_template("admin/badge_remove.html", v=v, badge_types=badges, error="User doesn't have that badge.") + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=False, error="User doesn't have that badge.") if v.id != user.id: text = f"@{v.username} (Admin) has removed the following profile badge from you:\n\n![]({badge.path})\n\n**{badge.name}**\n\n{badge.badge.description}" @@ -614,11 +597,8 @@ def badge_remove_post(v): _note=badge.name ) g.db.add(ma) - g.db.delete(badge) - - - return render_template("admin/badge_remove.html", v=v, badge_types=badges, msg=f"{badge.name} Badge removed from @{user.username} successfully!") + return render_template("admin/badge_admin.html", v=v, badge_types=badges, grant=False, msg=f"{badge.name} Badge removed from @{user.username} successfully!") @app.get("/admin/users") diff --git a/files/templates/admin/badge_grant.html b/files/templates/admin/badge_admin.html similarity index 86% rename from files/templates/admin/badge_grant.html rename to files/templates/admin/badge_admin.html index bc50ed536..91bab4f9b 100644 --- a/files/templates/admin/badge_grant.html +++ b/files/templates/admin/badge_admin.html @@ -1,9 +1,10 @@ {% extends "default.html" %} - -{% block title %} -Badge Grant -{% endblock %} - +{% if grant %} + {% set title="Badge Grant" %} +{% else %} + {% set title="Badge Remove" %} +{% endif %} +{% block pagetitle %}{{title}}{% endblock %} {% block pagetype %}message{% endblock %} {% block content %} @@ -31,12 +32,17 @@ {% endif %} -
Badge Grant
+
{{title}}
-
+{% if grant %} + {% set form_action="/admin/badge_grant" %} +{% else %} + {% set form_action="/admin/badge_remove" %} +{% endif %} + + -
@@ -68,13 +74,13 @@ {% endfor %} - +{% if grant %}

- +{% endif %}
diff --git a/files/templates/admin/badge_remove.html b/files/templates/admin/badge_remove.html deleted file mode 100644 index d1c3f27ba..000000000 --- a/files/templates/admin/badge_remove.html +++ /dev/null @@ -1,91 +0,0 @@ -{% extends "default.html" %} - -{% block title %} -Badge Remove -{% endblock %} - -{% block pagetype %}message{% endblock %} - -{% block content %} - - {% if error %} - - {% endif %} - {% if msg %} - - {% endif %} - -
Badge Remove
- -
- - - -
- - -
- - - - - - - - - -{% for badge in badge_types %} - - - - - - -{% endfor %} -
SelectImageNameDefault Description
-
- - -
-
- - {{badge.name}}{{badge.description}}
- -
- - -
- - - - - - - - -{% endblock %}