def prime_cache(cls, cache_key, **kwargs): """reload all settings into cache as dictionary """ db_keys = cls.precache_all_values() out = dict() for key in list(cls.__instance.keys()): if hasattr(django_settings, 'ASKBOT_' + key): value = getattr(django_settings, 'ASKBOT_' + key) else: setting_value = cls.__instance[key] if setting_value.localized: db_key = '{}_{}'.format(key, format_setting_name(get_language())) else: db_key = key if db_key in db_keys: value = setting_value.value else: if hasattr(setting_value, 'default'): value = setting_value.default else: logging.critical('setting %s lacks default value', key) value = setting_value.value db_setting = setting_value.make_setting_with_value(value) db_setting.site = Site.objects.get_current() db_setting.cache_set() out[key] = value cache.set(cache_key, out) return out
def prime_cache(cls, cache_key, **kwargs): """reload all settings into cache as dictionary """ db_keys = cls.precache_all_values() out = dict() for key in cls.__instance.keys(): if hasattr(django_settings, 'ASKBOT_' + key): value = getattr(django_settings, 'ASKBOT_' + key) else: setting_value = cls.__instance[key] if setting_value.localized: db_key = '{}_{}'.format(key, format_setting_name(get_language())) else: db_key = key if db_key in db_keys: value = setting_value.value else: if hasattr(setting_value, 'default'): value = setting_value.default else: logging.critical('setting %s lacks default value', key) value = setting_value.value db_setting = setting_value.make_setting_with_value(value) db_setting.site = Site.objects.get_current() db_setting.cache_set() out[key] = value cache.set(cache_key, out) return out
def is_login_method_enabled(name): name_key = format_setting_name(name) setting = getattr(askbot_settings, 'SIGNIN_' + name_key + '_ENABLED', None) if setting is not None: return setting google_method = askbot_settings.SIGNIN_GOOGLE_METHOD if name == 'google': return google_method == 'openid' elif name == 'google-plus': return google_method == 'google-plus' return False
def get_oauth2_starter_url(provider_name, csrf_token): """returns redirect url for the oauth2 protocol for a given provider""" from requests_oauthlib.oauth2_session import OAuth2Session providers = get_enabled_login_providers() params = providers[provider_name] client_id = getattr(askbot_settings, format_setting_name(provider_name) + '_KEY') redirect_uri = site_url(reverse('user_complete_oauth2_signin')) session = OAuth2Session(client_id, redirect_uri=redirect_uri, state=csrf_token) url, csrf = session.authorization_url(params['auth_endpoint'], **params.get('extra_auth_params', {})) return url.encode('utf-8')
def get_oauth2_starter_url(provider_name, csrf_token): """returns redirect url for the oauth2 protocol for a given provider""" from sanction.client import Client providers = get_enabled_login_providers() params = providers[provider_name] client_id = getattr(askbot_settings, format_setting_name(provider_name) + '_KEY') redirect_uri = site_url(reverse('user_complete_oauth2_signin')) client = Client( auth_endpoint=params['auth_endpoint'], client_id=client_id, redirect_uri=redirect_uri ) return client.auth_uri(state=csrf_token, **params.get('extra_auth_params', {}))
def get_oauth2_starter_url(provider_name, csrf_token): """returns redirect url for the oauth2 protocol for a given provider""" from sanction.client import Client providers = get_enabled_login_providers() params = providers[provider_name] client_id = getattr(askbot_settings, format_setting_name(provider_name) + '_KEY') redirect_uri = site_url(reverse('user_complete_oauth2_signin')) client = Client(auth_endpoint=params['auth_endpoint'], client_id=client_id, redirect_uri=redirect_uri) return client.auth_uri(state=csrf_token, **params.get('extra_auth_params', {}))
def _value(self): use_db, overrides = get_overrides() lang = get_language() key = self.key if self.localized: key += '_' + format_setting_name(lang) if not use_db: try: val = overrides[self.group.key][key] except KeyError: if self.use_default: val = self.default else: raise SettingNotSet( '%s.%s is not in your LIVESETTINGS_OPTIONS' % (self.group.key, key)) else: try: val = self.setting.value except SettingNotSet, sns: if self.localized and lang == django_settings.LANGUAGE_CODE: try: unlocalized_setting = find_setting( self.group.key, self.key) return unlocalized_setting.value except SettingNotSet: pass if self.use_default: val = self.default if overrides: # maybe override the default grp = overrides.get(self.group.key, {}) if grp.has_key(key): val = grp[self.key] else: val = NOTSET except AttributeError, ae: log.error("Attribute error: %s", ae) log.error("%s: Could not get _value of %s", key, self.setting) raise (ae)
def _value(self): use_db, overrides = get_overrides() lang = get_language() key = self.key if self.localized: key += '_' + format_setting_name(lang) if not use_db: try: val = overrides[self.group.key][key] except KeyError: if self.use_default: val = self.default else: raise SettingNotSet('%s.%s is not in your LIVESETTINGS_OPTIONS' % (self.group.key, key)) else: try: val = self.setting.value except SettingNotSet, sns: if self.localized and lang == django_settings.LANGUAGE_CODE: try: unlocalized_setting = find_setting(self.group.key, self.key) return unlocalized_setting.value except SettingNotSet: pass if self.use_default: val = self.default if overrides: # maybe override the default grp = overrides.get(self.group.key, {}) if grp.has_key(key): val = grp[self.key] else: val = NOTSET except AttributeError, ae: log.error("Attribute error: %s", ae) log.error("%s: Could not get _value of %s", key, self.setting) raise(ae)
def is_enabled(cls): setting_name = format_setting_name(cls.key) + '_BADGE_ENABLED' return getattr(askbot_settings, setting_name, False)
def is_login_method_enabled(name): name_key = format_setting_name(name) setting = getattr(askbot_settings, 'SIGNIN_' + name_key + '_ENABLED', None) if setting is not None: return setting return False
def make_setting(self, db_value, language_code=None): log.debug('new long setting %s.%s', self.group.key, self.key) key = self.key if self.localized and language_code: key = self.key + '_' + format_setting_name(language_code) return LongSetting(group=self.group.key, key=key, value=db_value)
def make_setting(self, db_value, language_code=None): logger.debug("new setting %s.%s", self.group.key, self.key) key = self.key if self.localized and language_code: key += "_" + format_setting_name(language_code) return Setting(group=self.group.key, key=key, value=db_value)
def _setting(self): key = self.key if self.localized: key += '_' + format_setting_name(get_language()) return find_setting(self.group.key, key)
def make_setting(self, db_value, language_code=None): logger.debug('new long setting %s.%s', self.group.key, self.key) key = self.key if self.localized and language_code: key = self.key + '_' + format_setting_name(language_code) return LongSetting(group=self.group.key, key=key, value=db_value)
def get_setting(self, language_code=None): key = self.key if self.localized and language_code: key += '_' + format_setting_name(language_code) return find_setting(self.group.key, key)
def make_setting(self, db_value, language_code=None): log.debug('new setting %s.%s', self.group.key, self.key) key = self.key if self.localized: key += '_' + format_setting_name(language_code or get_language()) return Setting(group=self.group.key, key=key, value=db_value)
def _value(self): use_db, overrides = get_overrides() lang = get_language() key = self.key if self.localized: key += '_' + format_setting_name(lang) if not use_db: try: val = overrides[self.group.key][key] except KeyError: if self.use_default: val = self.default else: raise SettingNotSet('%s.%s is not in your LIVESETTINGS_OPTIONS' % (self.group.key, key)) else: try: val = self.setting.value except SettingNotSet: if self.localized and lang == django_settings.LANGUAGE_CODE: try: unlocalized_setting = find_setting(self.group.key, self.key) return unlocalized_setting.value except SettingNotSet: pass if self.use_default: val = self.default if overrides: # maybe override the default grp = overrides.get(self.group.key, {}) if key in grp: val = grp[self.key] else: val = NOTSET except AttributeError as ae: logger.error("Attribute error: %s", ae) logger.error("%s: Could not get _value of %s", key, self.setting) raise(ae) except Exception as e: global _WARN logger.error(e) if str(e).find("configuration_setting") > -1: if 'configuration_setting' not in _WARN: logger.warn('Error loading setting %s.%s from table, OK if you are in syncdb', self.group.key, key) _WARN['configuration_setting'] = True if self.use_default: val = self.default else: raise ImproperlyConfigured("All settings used in startup must have defaults, %s.%s does not", self.group.key, key) else: traceback.print_exc() logger.warn("Problem finding settings %s.%s, %s", self.group.key, key, e) raise SettingNotSet("Startup error, couldn't load %s.%s" % (self.group.key, key)) return val
def _value(self): use_db, overrides = get_overrides() lang = get_language() key = self.key if self.localized: key += "_" + format_setting_name(lang) if not use_db: try: val = overrides[self.group.key][key] except KeyError: if self.use_default: val = self.default else: raise SettingNotSet("%s.%s is not in your LIVESETTINGS_OPTIONS" % (self.group.key, key)) else: try: val = self.setting.value except SettingNotSet: if self.localized and lang == django_settings.LANGUAGE_CODE: try: unlocalized_setting = find_setting(self.group.key, self.key) return unlocalized_setting.value except SettingNotSet: pass if self.use_default: val = self.default if overrides: # maybe override the default grp = overrides.get(self.group.key, {}) if key in grp: val = grp[self.key] else: val = NOTSET except AttributeError as ae: logger.error("Attribute error: %s", ae) logger.error("%s: Could not get _value of %s", key, self.setting) raise (ae) except Exception as e: global _WARN logger.error(e) if str(e).find("configuration_setting") > -1: if "configuration_setting" not in _WARN: logger.warn( "Error loading setting %s.%s from table, OK if you are in syncdb", self.group.key, key ) _WARN["configuration_setting"] = True if self.use_default: val = self.default else: raise ImproperlyConfigured( "All settings used in startup must have defaults, %s.%s does not", self.group.key, key ) else: traceback.print_exc() logger.warn("Problem finding settings %s.%s, %s", self.group.key, key, e) raise SettingNotSet("Startup error, couldn't load %s.%s" % (self.group.key, key)) return val