Example #1
0
    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
Example #2
0
    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
Example #3
0
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
Example #4
0
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
Example #5
0
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')
Example #6
0
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', {}))
Example #7
0
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', {}))
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
 def is_enabled(cls):
     setting_name = format_setting_name(cls.key) + '_BADGE_ENABLED'
     return getattr(askbot_settings, setting_name, False)
Example #11
0
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
Example #12
0
 def is_enabled(cls):
     setting_name = format_setting_name(cls.key) + '_BADGE_ENABLED'
     return getattr(askbot_settings, setting_name, False)
Example #13
0
 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)
Example #14
0
 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)
Example #15
0
 def _setting(self):
     key = self.key
     if self.localized:
         key += '_' + format_setting_name(get_language())
     return find_setting(self.group.key, key)
Example #16
0
 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)
Example #17
0
 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)
Example #18
0
 def _setting(self):
     key = self.key
     if self.localized:
         key += '_' + format_setting_name(get_language())
     return find_setting(self.group.key, key)
Example #19
0
 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)
Example #20
0
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
Example #21
0
 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)
Example #22
0
 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)
Example #23
0
    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
Example #24
0
    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