From 8a8a67a0591ff006899d8f8ee63dd6b28d759c89 Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Thu, 22 Sep 2022 21:40:14 +0200 Subject: [PATCH] remove ban_evade logic --- files/classes/user.py | 15 +++++++++++---- files/helpers/awards.py | 1 - files/helpers/wrappers.py | 13 ++++--------- files/routes/admin.py | 6 ------ files/routes/awards.py | 1 - files/routes/login.py | 6 +----- schema.sql | 1 - 7 files changed, 16 insertions(+), 27 deletions(-) diff --git a/files/classes/user.py b/files/classes/user.py index 017725a9c..e4232c4b0 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -128,7 +128,6 @@ class User(Base): is_nofollow = Column(Boolean, default=False) custom_filter_list = Column(String) discord_id = Column(String) - ban_evade = Column(Integer, default=0) original_username = Column(String) referred_by = Column(Integer, ForeignKey("users.id")) currently_held_lottery_tickets = Column(Integer, default=0) @@ -835,10 +834,18 @@ class User(Base): @property @lazy - def has_shadowbanned_alts(self): + def check_ban_evade(self): for u in self.alts_unique: - if u.shadowbanned or u.is_suspended_permanently: return True - return False + if u.shadowbanned: + self.shadowbanned = u.shadowbanned + g.db.add(self) + g.db.commit() + return + if u.is_suspended_permanently: + self.shadowbanned = u.banned_by.username + g.db.add(self) + g.db.commit() + return @property @lazy diff --git a/files/helpers/awards.py b/files/helpers/awards.py index 69fd9be78..502da206f 100644 --- a/files/helpers/awards.py +++ b/files/helpers/awards.py @@ -21,7 +21,6 @@ def award_timers(v, bot=False): if v.unban_utc and v.unban_utc < now: v.is_banned = 0 v.unban_utc = 0 - v.ban_evade = 0 v.ban_reason = None notify_if_not_bot("You have been unbanned!") if v.agendaposter and v.agendaposter != 1 and v.agendaposter < now: diff --git a/files/helpers/wrappers.py b/files/helpers/wrappers.py index 8d9c32028..d580a8a65 100644 --- a/files/helpers/wrappers.py +++ b/files/helpers/wrappers.py @@ -91,16 +91,11 @@ def get_logged_in_user(): return v -def check_ban_evade(v): - if v and not v.patron and v.admin_level < 2 and v.ban_evade and not v.unban_utc: - v.shadowbanned = "AutoJanny" - g.db.add(v) - def auth_desired(f): def wrapper(*args, **kwargs): v = get_logged_in_user() - check_ban_evade(v) + v.check_ban_evade() return make_response(f(*args, v=v, **kwargs)) @@ -120,7 +115,7 @@ def auth_desired_with_logingate(f): if not redir: redir = '/' return redirect(redir) - check_ban_evade(v) + v.check_ban_evade() return make_response(f(*args, v=v, **kwargs)) @@ -132,7 +127,7 @@ def auth_required(f): v = get_logged_in_user() if not v: abort(401) - check_ban_evade(v) + v.check_ban_evade() return make_response(f(*args, v=v, **kwargs)) @@ -147,7 +142,7 @@ def is_not_permabanned(f): if not v: abort(401) - check_ban_evade(v) + v.check_ban_evade() if v.is_suspended_permanently: return {"error": "Internal server error"}, 500 diff --git a/files/routes/admin.py b/files/routes/admin.py index 0d580e6e4..a6ab7c6cc 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -278,7 +278,6 @@ def revert_actions(v, username): for user in users: user.shadowbanned = None user.unban_utc = 0 - user.ban_evade = 0 user.ban_reason = None if user.is_banned: user.is_banned = 0 @@ -288,7 +287,6 @@ def revert_actions(v, username): for u in user.alts: u.shadowbanned = None u.unban_utc = 0 - u.ban_evade = 0 u.ban_reason = None if u.is_banned: u.is_banned = 0 @@ -931,11 +929,9 @@ def shadowban(user_id, v): def unshadowban(user_id, v): user = get_account(user_id) user.shadowbanned = None - user.ban_evade = 0 g.db.add(user) for alt in user.alts: alt.shadowbanned = None - alt.ban_evade = 0 g.db.add(alt) ma = ModAction( @@ -1058,7 +1054,6 @@ def unban_user(user_id, v): user.is_banned = 0 user.unban_utc = 0 - user.ban_evade = 0 user.ban_reason = None send_repeatable_notification(user.id, f"@{v.username} has unbanned you!") g.db.add(user) @@ -1067,7 +1062,6 @@ def unban_user(user_id, v): if x.is_banned: send_repeatable_notification(x.id, f"@{v.username} has unbanned you!") x.is_banned = 0 x.unban_utc = 0 - x.ban_evade = 0 x.ban_reason = None g.db.add(x) diff --git a/files/routes/awards.py b/files/routes/awards.py index e5eb14b21..df1490c43 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -232,7 +232,6 @@ def award_thing(v, thing_type, id): else: author.unban_utc = 0 author.is_banned = 0 - author.ban_evade = 0 author.ban_reason = None send_repeatable_notification(author.id, "You have been unbanned!") diff --git a/files/routes/login.py b/files/routes/login.py index 390895c59..5ca6aff5b 100644 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -333,7 +333,6 @@ def sign_up_post(v): password=request.values.get("password"), email=email, referred_by=ref_id or None, - ban_evade =int(any((x.is_banned or x.shadowbanned) and not x.unban_utc for x in g.db.query(User).filter(User.id.in_(session.get("history", []))).all() if x)), profileurl=profileurl ) @@ -357,10 +356,7 @@ def sign_up_post(v): check_for_alts(new_user.id) - if new_user.has_shadowbanned_alts: - new_user.shadowbanned = "AutoJanny" - g.db.add(new_user) - g.db.commit() + new_user.check_ban_evade() send_notification(new_user.id, WELCOME_MSG) diff --git a/schema.sql b/schema.sql index 2155b9805..756d08ce2 100644 --- a/schema.sql +++ b/schema.sql @@ -888,7 +888,6 @@ CREATE TABLE public.users ( custom_filter_list character varying(1000) DEFAULT ''::character varying, discord_id character varying(64), stored_subscriber_count integer DEFAULT 0 NOT NULL, - ban_evade integer DEFAULT 0 NOT NULL, original_username character varying(30), customtitle character varying(1000), defaultsorting character varying(15) DEFAULT 'hot'::character varying NOT NULL,