From dda3ff15399b1618909f8da40d8bf558fe64d28e Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Wed, 26 Dec 2012 20:49:09 -0800 Subject: [PATCH] Make /r/lounge is_contributor not rely on overbloated rel. The lounge is too popular! update_gold_users is crashing taking too long to update the SRMember:contributor rel when users' gold expire. This change makes it so that we don't actually need to maintain the rel to maintain proper access control for the lounge. --- r2/r2/models/admintools.py | 8 -------- r2/r2/models/subreddit.py | 6 ++++++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/r2/r2/models/admintools.py b/r2/r2/models/admintools.py index 385747076..62eebcb64 100644 --- a/r2/r2/models/admintools.py +++ b/r2/r2/models/admintools.py @@ -178,10 +178,6 @@ class AdminTools(object): account.friend_rels_cache(_update=True) - if g.lounge_reddit: - sr = Subreddit._by_name(g.lounge_reddit) - sr.add_contributor(account) - def degolden(self, account, severe=False): if severe: @@ -192,10 +188,6 @@ class AdminTools(object): account.gold = False account._commit() - if g.lounge_reddit and not getattr(account, "gold_charter", False): - sr = Subreddit._by_name(g.lounge_reddit) - sr.remove_contributor(account) - def admin_list(self): return list(g.admins) diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index 56639af1d..c4e8178f1 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -312,6 +312,12 @@ class Subreddit(Thing, Printable): def spammy(self): return self._spam + def is_contributor(self, user): + if self.name.lower() == g.lounge_reddit.lower(): + return user.gold or user.gold_charter + else: + return super(Subreddit, self).is_contributor(user) + def can_comment(self, user): if c.user_is_admin: return True