diff --git a/files/classes/user.py b/files/classes/user.py index 2b72d9d67..d7dd05097 100755 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -452,6 +452,7 @@ class User(Base): if self.unban_utc and self.unban_utc < time.time(): self.is_banned = 0 self.unban_utc = 0 + self.ban_evade = 0 g.db.add(self) g.db.commit() return (self.is_banned and (not self.unban_utc or self.unban_utc > time.time())) diff --git a/files/helpers/wrappers.py b/files/helpers/wrappers.py index 75336c2b0..f1780960c 100755 --- a/files/helpers/wrappers.py +++ b/files/helpers/wrappers.py @@ -43,8 +43,7 @@ def get_logged_in_user(): def check_ban_evade(v): - if not v or not v.ban_evade or v.admin_level > 0: - return + if not v or not v.ban_evade or v.admin_level > 0 or v.is_suspended: return if random.randint(0,30) < v.ban_evade: v.ban(reason="permaban evasion") diff --git a/files/routes/admin.py b/files/routes/admin.py index a8770e482..17be88496 100755 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -46,6 +46,7 @@ def revert_actions(v, username): for user in users: user.is_banned = 0 user.unban_utc = 0 + user.ban_evade = 0 g.db.add(user) g.db.commit() @@ -910,6 +911,7 @@ def unban_user(user_id, v): user.is_banned = 0 user.unban_utc = 0 + user.ban_evade = 0 g.db.add(user) if request.values.get("alts", ""): @@ -917,6 +919,7 @@ def unban_user(user_id, v): if x.admin_level == 0: x.is_banned = 0 x.unban_utc = 0 + x.ban_evade = 0 g.db.add(x) send_notification(NOTIFICATIONS_ACCOUNT, user, diff --git a/files/routes/awards.py b/files/routes/awards.py index 847b58ead..fdda9caaf 100755 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -398,6 +398,7 @@ def award_post(pid, v): else: author.unban_utc = 0 author.is_banned = 0 + author.ban_evade = 0 send_notification(NOTIFICATIONS_ACCOUNT, author, f"You have been unbanned!") elif kind == "grass": author.is_banned = AUTOJANNY_ACCOUNT @@ -501,6 +502,7 @@ def award_comment(cid, v): else: author.unban_utc = 0 author.is_banned = 0 + author.ban_evade = 0 send_notification(NOTIFICATIONS_ACCOUNT, author, f"You have been unbanned!") elif kind == "grass": author.is_banned = AUTOJANNY_ACCOUNT diff --git a/files/routes/login.py b/files/routes/login.py index 7866f659a..3fa8fb874 100755 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -136,6 +136,7 @@ def login_post(): if account.is_banned and account.unban_utc > 0 and time.time() > account.unban_utc: account.is_banned = 0 account.unban_utc = 0 + account.ban_evade = 0 g.db.add(account) session["user_id"] = account.id