diff --git a/r2/r2/lib/validator/preferences.py b/r2/r2/lib/validator/preferences.py index c7252dbdb..e86f7e9c7 100644 --- a/r2/r2/lib/validator/preferences.py +++ b/r2/r2/lib/validator/preferences.py @@ -83,8 +83,10 @@ PREFS_VALIDATORS = dict( pref_use_global_defaults=VBoolean("use_global_defaults"), pref_creddit_autorenew=VBoolean("creddit_autorenew"), pref_enable_default_themes=VBoolean("enable_default_themes", False), - pref_default_theme_sr=VSRByName("theme_selector", False), - pref_other_theme=VSRByName("other_theme", False), + pref_default_theme_sr=VSRByName("theme_selector", required=False, + return_srname=True), + pref_other_theme=VSRByName("other_theme", required=False, + return_srname=True), pref_beta=VBoolean('beta'), pref_legacy_search=VBoolean('legacy_search'), pref_threaded_modmail=VBoolean('threaded_modmail', False), @@ -140,8 +142,9 @@ def filter_prefs(prefs, user): prefs['pref_highlight_new_comments'] = True # check stylesheet override - if feature.is_enabled('stylesheets_everywhere', user=user): - override_sr = prefs['pref_default_theme_sr'] + if (feature.is_enabled('stylesheets_everywhere', user=user) and + prefs['pref_default_theme_sr']): + override_sr = Subreddit._by_name(prefs['pref_default_theme_sr']) if not override_sr: del prefs['pref_default_theme_sr'] if prefs['pref_enable_default_themes']: diff --git a/r2/r2/lib/validator/validator.py b/r2/r2/lib/validator/validator.py index c3297c0ac..2e9299ed9 100644 --- a/r2/r2/lib/validator/validator.py +++ b/r2/r2/lib/validator/validator.py @@ -720,8 +720,9 @@ class VAvailableSubredditName(VSubredditName): class VSRByName(Validator): - def __init__(self, sr_name, required=True): + def __init__(self, sr_name, required=True, return_srname=False): self.required = required + self.return_srname = return_srname Validator.__init__(self, sr_name) def run(self, sr_name): @@ -732,7 +733,10 @@ class VSRByName(Validator): sr_name = sr_path_rx.sub('\g', sr_name.strip()) try: sr = Subreddit._by_name(sr_name) - return sr + if self.return_srname: + return sr.name + else: + return sr except NotFound: self.set_error(errors.SUBREDDIT_NOEXIST, code=400)