From 3225a2a3d48aa819b094f9a952611887cc53b5cc Mon Sep 17 00:00:00 2001 From: TLSM Date: Tue, 19 Jul 2022 19:59:39 -0400 Subject: [PATCH] LGB: disable awards, badges. --- .../assets/js/comments+submission_listing.js | 14 ++++++----- files/helpers/const.py | 6 +++-- files/routes/admin.py | 12 +++++++++ files/routes/awards.py | 14 +++++++++++ files/routes/static.py | 3 +++ files/templates/admin/admin_home.html | 22 +++++++++++----- files/templates/comments.html | 8 +++++- files/templates/header.html | 6 ++--- files/templates/mobile_navigation_bar.html | 2 ++ files/templates/post_actions.html | 2 +- files/templates/post_actions_mobile.html | 2 ++ files/templates/submission_listing.html | 4 ++- files/templates/userpage.html | 25 ++++++++++--------- files/templates/util/assetcache.html | 2 +- 14 files changed, 89 insertions(+), 33 deletions(-) diff --git a/files/assets/js/comments+submission_listing.js b/files/assets/js/comments+submission_listing.js index 49056b0f1..c081efc81 100644 --- a/files/assets/js/comments+submission_listing.js +++ b/files/assets/js/comments+submission_listing.js @@ -36,13 +36,15 @@ function popclick(e) { let popover = document.getElementsByClassName("popover") popover = popover[popover.length-1] - const badgesDOM = popover.getElementsByClassName('pop-badges')[0]; - badgesDOM.innerHTML = ""; - for (const badge of author["badges"]) { - const badgeDOM = popClickBadgeTemplateDOM.cloneNode(); - badgeDOM.src = badge + "?v=1021"; + if (popover.getElementsByClassName('pop-badges').length > 0) { + const badgesDOM = popover.getElementsByClassName('pop-badges')[0]; + badgesDOM.innerHTML = ""; + for (const badge of author["badges"]) { + const badgeDOM = popClickBadgeTemplateDOM.cloneNode(); + badgeDOM.src = badge + "?v=1021"; - badgesDOM.append(badgeDOM); + badgesDOM.append(badgeDOM); + } } popover.getElementsByClassName('pop-banner')[0].src = author["bannerurl"] diff --git a/files/helpers/const.py b/files/helpers/const.py index 260c0c78a..1ca362444 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -145,9 +145,11 @@ PERMS = { # Minimum admin_level to perform action. FEATURES = { 'PROCOINS': True, + 'AWARDS': True, 'CHAT': True, 'PINS': True, 'PRONOUNS': False, + 'BADGES': True, 'HOUSES': False, 'USERS_SUICIDE': True, 'GAMBLING': True, @@ -326,7 +328,9 @@ elif SITE == 'lgbdropthet.com': PERMS['USER_VOTERS_VISIBLE'] = 2 FEATURES['PROCOINS'] = False + FEATURES['AWARDS'] = False FEATURES['CHAT'] = False + FEATURES['BADGES'] = False FEATURES['USERS_SUICIDE'] = False FEATURES['GAMBLING'] = False @@ -352,8 +356,6 @@ else: # localhost or testing environment implied FEATURES['PRONOUNS'] = True FEATURES['HOUSES'] = True - FEATURES['GAMBLING'] = False - if SITE == 'deuxrama.net': PERMS['HOLE_CREATE'] = 3 PERMS['CONTENT_THREADS'] = 2 diff --git a/files/routes/admin.py b/files/routes/admin.py index c9e4040a8..66508b789 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -507,6 +507,9 @@ def under_attack(v): @app.get("/admin/badge_grant") @admin_level_required(2) def badge_grant_get(v): + if not FEATURES['BADGES']: + abort(404) + badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() return render_template("admin/badge_grant.html", v=v, badge_types=badges) @@ -515,6 +518,9 @@ def badge_grant_get(v): @limiter.limit("1/second;30/minute;200/hour;1000/day") @admin_level_required(2) def badge_grant_post(v): + if not FEATURES['BADGES']: + abort(404) + badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() user = get_user(request.values.get("username").strip(), graceful=True) @@ -562,6 +568,9 @@ def badge_grant_post(v): @app.get("/admin/badge_remove") @admin_level_required(2) def badge_remove_get(v): + if not FEATURES['BADGES']: + abort(404) + badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() return render_template("admin/badge_remove.html", v=v, badge_types=badges) @@ -571,6 +580,9 @@ def badge_remove_get(v): @limiter.limit("1/second;30/minute;200/hour;1000/day") @admin_level_required(2) def badge_remove_post(v): + if not FEATURES['BADGES']: + abort(404) + badges = g.db.query(BadgeDef).order_by(BadgeDef.id).all() user = get_user(request.values.get("username").strip(), graceful=True) diff --git a/files/routes/awards.py b/files/routes/awards.py index 3bd22e676..1dcf2e836 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -16,6 +16,9 @@ from copy import deepcopy @app.get("/settings/shop") @auth_required def shop(v): + if not FEATURES['AWARDS']: + abort(404) + AWARDS = deepcopy(AWARDS2) for val in AWARDS.values(): val["owned"] = 0 @@ -34,6 +37,9 @@ def shop(v): @app.post("/buy/") @auth_required def buy(v, award): + if not FEATURES['AWARDS']: + abort(404) + if award == 'benefactor' and not request.values.get("mb"): return {"error": "You can only buy the Benefactor award with marseybux."}, 403 @@ -106,6 +112,8 @@ def buy(v, award): @limiter.limit("1/second;30/minute;200/hour;1000/day", key_func=lambda:f'{SITE}-{session.get("lo_user")}') @is_not_permabanned def award_thing(v, thing_type, id): + if not FEATURES['AWARDS']: + abort(404) if thing_type == 'post': thing = get_post(id) else: thing = get_comment(id) @@ -315,6 +323,9 @@ def award_thing(v, thing_type, id): @app.get("/admin/awards") @admin_level_required(2) def admin_userawards_get(v): + if not FEATURES['AWARDS']: + abort(404) + if SITE == 'pcmemes.net' and v.admin_level < 3: abort(403) if v.admin_level != 3: @@ -326,6 +337,9 @@ def admin_userawards_get(v): @limiter.limit("1/second;30/minute;200/hour;1000/day") @admin_level_required(2) def admin_userawards_post(v): + if not FEATURES['AWARDS']: + abort(404) + if SITE == 'pcmemes.net' and v.admin_level < 3: abort(403) try: u = request.values.get("username").strip() diff --git a/files/routes/static.py b/files/routes/static.py index 00e3f0101..244f1ef5e 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -323,6 +323,9 @@ def badge_list(site): @app.get("/badges") @auth_required def badges(v): + if not FEATURES['BADGES']: + abort(404) + badges, counts = badge_list(SITE) return render_template("badges.html", v=v, badges=badges, counts=counts) diff --git a/files/templates/admin/admin_home.html b/files/templates/admin/admin_home.html index f303a7f38..2ed7ad5c4 100644 --- a/files/templates/admin/admin_home.html +++ b/files/templates/admin/admin_home.html @@ -23,9 +23,13 @@
  • Users Feed
  • Shadowbanned Users
  • Permabanned Users
  • -
  • Users with Chud Theme
  • -
  • Currently Grassed Users
  • -
  • Patrons / Paypigs
  • + {% if FEATURES['AWARDS'] -%} +
  • Users with Chud Theme
  • +
  • Currently Grassed Users
  • + {%- endif %} + {% if FEATURES['PROCOINS'] -%} +
  • Patrons / Paypigs
  • + {%- endif %}
  • Currently Logged-in Users
  • Currently Logged-out Users
  • @@ -36,12 +40,18 @@
  • Multi Vote Analysis
  • +{% if FEATURES['BADGES'] or FEATURES['AWARDS'] -%}

    Grant

    +{%- endif %}

    API Access Control