Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Correct assignment of users' flairtext and flair_css_class so that subreddit settings are taken into account. #1606

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 4 additions & 4 deletions r2/r2/lib/automoderator.py
Expand Up @@ -99,9 +99,9 @@ def replace_placeholders(string, data, matches):
"{{body}}": getattr(item, "body", ""),
"{{subreddit}}": data["subreddit"].name,
"{{author_flair_text}}": data["author"].flair_text(
data["subreddit"]._id, obey_disabled=True),
data["subreddit"]._id, obey_disabled=True, flair_enabled_by_sr=data["subreddit"].flair_enabled),
"{{author_flair_css_class}}": data["author"].flair_css_class(
data["subreddit"]._id, obey_disabled=True),
data["subreddit"]._id, obey_disabled=True, flair_enabled_by_sr=data["subreddit"].flair_enabled),
}

if isinstance(item, Comment):
Expand Down Expand Up @@ -1164,10 +1164,10 @@ def get_field_value_from_item(self, item, data, field):
comment = self.get_field_value_from_item(item, data, "comment_karma")
value = link + comment
elif field == "flair_text" and isinstance(item, Account):
value = item.flair_text(data["subreddit"]._id, obey_disabled=True)
value = item.flair_text(data["subreddit"]._id, obey_disabled=True, flair_enabled_by_sr=data["subreddit"].flair_enabled)
elif field == "flair_css_class" and isinstance(item, Account):
value = item.flair_css_class(
data["subreddit"]._id, obey_disabled=True)
data["subreddit"]._id, obey_disabled=True, flair_enabled_by_sr=data["subreddit"].flair_enabled)
else:
value = getattr(item, field, "")

Expand Down
8 changes: 6 additions & 2 deletions r2/r2/models/account.py
Expand Up @@ -577,12 +577,16 @@ def set_subreddit_style(self, sr, use_style):
def flair_enabled_in_sr(self, sr_id):
return getattr(self, 'flair_%s_enabled' % sr_id, True)

def flair_text(self, sr_id, obey_disabled=False):
def flair_text(self, sr_id, obey_disabled=False, flair_enabled_by_sr=True):
if not flair_enabled_by_sr:
return None
if obey_disabled and not self.flair_enabled_in_sr(sr_id):
return None
return getattr(self, 'flair_%s_text' % sr_id, None)

def flair_css_class(self, sr_id, obey_disabled=False):
def flair_css_class(self, sr_id, obey_disabled=False, flair_enabled_by_sr=True):
if not flair_enabled_by_sr:
return None
if obey_disabled and not self.flair_enabled_in_sr(sr_id):
return None
return getattr(self, 'flair_%s_css_class' % sr_id, None)
Expand Down