Source code for ska.contrib.django.ska.utils

from __future__ import absolute_import

import datetime

from ....defaults import DEFAULT_PROVIDER_PARAM
from .models import Signature
from .settings import PROVIDERS, SECRET_KEY

__title__ = 'ska.contrib.django.ska.utils'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2013-2018 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
__all__ = (
    'purge_signature_data',
    'get_secret_key',
    'get_provider_data',
)


[docs]def purge_signature_data(): """Purge old signature data (valid_until < now).""" Signature._default_manager \ .filter(valid_until__lt=datetime.datetime.now()) \ .delete()
[docs]def get_secret_key(data, default=SECRET_KEY): """Obtain the secret key from request data given. This happens by looking up the secret key by `provider` param from the request data in the dictionary of ``PROVIDERS`` defined in settings module. If not found, fall back to the ``default`` value given, which is by default the globally set secret key. :param dict data: :param string default: Secret key value to be used as default. By default, the globally set secret key is used. """ provider = data.get(DEFAULT_PROVIDER_PARAM, None) if provider: provider_data = PROVIDERS.get(provider, None) if provider_data: return provider_data.get('SECRET_KEY', default) return default
[docs]def get_provider_data(data, settings=None): """Obtain the secret key from request data given. This happens by looking up the secret key by `provider` param from the request data in the dictionary of ``PROVIDERS`` defined in settings module. If not found, fall back to the ``default`` value given, which is by default the globally set secret key. :param dict data: :param dict settings: Settings dict. """ if not settings or not isinstance(settings, dict): settings = PROVIDERS provider = data.get(DEFAULT_PROVIDER_PARAM, None) if provider: return settings.get(provider, None) return {}