From 592b4374a66155d3388242c595aa6d3c9021a8e3 Mon Sep 17 00:00:00 2001 From: Aevann Date: Sun, 7 May 2023 21:06:08 +0300 Subject: [PATCH] add IGNORE_DOMAIN_BAN --- files/helpers/config/const.py | 2 +- files/helpers/sanitize.py | 15 ++++++++------- files/routes/posts.py | 13 +++++++------ 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/files/helpers/config/const.py b/files/helpers/config/const.py index db156f6de..d8001f73d 100644 --- a/files/helpers/config/const.py +++ b/files/helpers/config/const.py @@ -501,7 +501,7 @@ PERMS = { # Minimum admin_level to perform action. 'MODS_EVERY_HOLE': 5, 'MODS_EVERY_GROUP': 5, 'IGNORE_AWARD_IMMUNITY': 5, - 'GROOMING': 5, + 'IGNORE_DOMAIN_BAN': 5, } FEATURES = { diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py index 58608ed5c..93a05b044 100644 --- a/files/helpers/sanitize.py +++ b/files/helpers/sanitize.py @@ -539,14 +539,15 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_emojis= else: abort(403, error) - banned_domains = g.db.query(BannedDomain).all() - for x in banned_domains: - for y in domain_list: - if y.startswith(x.domain): - return error(f'Remove the banned link "{x.domain}" and try again!\nReason for link ban: "{x.reason}"') + if not (g.v and g.v.admin_level >= PERMS["IGNORE_DOMAIN_BAN"]): + banned_domains = g.db.query(BannedDomain).all() + for x in banned_domains: + for y in domain_list: + if y.startswith(x.domain): + return error(f'Remove the banned link "{x.domain}" and try again!\nReason for link ban: "{x.reason}"') - if discord_username_regex.match(sanitized) and not (g.v and g.v.admin_level >= PERMS["GROOMING"]): - return error("Stop grooming!") + if discord_username_regex.match(sanitized): + return error("Stop grooming!") if '
' not in sanitized and blackjack != "rules":
 		sanitized = sanitized.replace('\n','')
diff --git a/files/routes/posts.py b/files/routes/posts.py
index 523728921..27dafa3bf 100644
--- a/files/routes/posts.py
+++ b/files/routes/posts.py
@@ -529,12 +529,13 @@ def submit_post(v:User, sub=None):
 		if repost and FEATURES['REPOST_DETECTION'] and not v.admin_level >= PERMS['POST_BYPASS_REPOST_CHECKING']:
 			return {"post_id": repost.id, "success": False}
 
-		y = tldextract.extract(url).registered_domain + parsed_url.path
-		y = y.lower()
-		banned_domains = g.db.query(BannedDomain).all()
-		for x in banned_domains:
-			if y.startswith(x.domain):
-				abort(400, f'Remove the banned link "{x.domain}" and try again!
Reason for link ban: "{x.reason}"') + if v.admin_level < PERMS["IGNORE_DOMAIN_BAN"]: + y = tldextract.extract(url).registered_domain + parsed_url.path + y = y.lower() + banned_domains = g.db.query(BannedDomain).all() + for x in banned_domains: + if y.startswith(x.domain): + abort(400, f'Remove the banned link "{x.domain}" and try again!
Reason for link ban: "{x.reason}"') if "twitter.com" == domain: try: