Esempio n. 1
0
def get_storage(request):
    """ Gets a Credentials storage object provided by the Django OAuth2 Helper
    object.

    Args:
        request: Reference to the current request object.

    Returns:
       An :class:`oauth2.client.Storage` object.
    """
    storage_model = oauth2_settings.storage_model
    user_property = oauth2_settings.storage_model_user_property
    credentials_property = oauth2_settings.storage_model_credentials_property

    if storage_model:
        module_name, class_name = storage_model.rsplit('.', 1)
        module = importlib.import_module(module_name)
        storage_model_class = getattr(module, class_name)
        return storage.DjangoORMStorage(storage_model_class,
                                        user_property,
                                        request.user,
                                        credentials_property)
    else:
        # use session
        return dictionary_storage.DictionaryStorage(
            request.session, key=_CREDENTIALS_KEY)
Esempio n. 2
0
def authorize_google(step, request):
    if step == 1:
        FLOW.params['state'] = xsrfutil.generate_token(settings.SECRET_KEY,
                                                       request.user)
        authorize_url = FLOW.step1_get_authorize_url()
        return HttpResponseRedirect(authorize_url)
    if step == 2:
        if not xsrfutil.validate_token(settings.SECRET_KEY,
                                       str(request.GET.__getitem__('state')),
                                       request.user):
            return False
        if request.GET.__contains__('error'):
            return False
        credential = FLOW.step2_exchange(request.GET)
        storage.DjangoORMStorage(CredentialsModel, 'id', request.user,
                                 'credential').put(credential)
        return True
    return False
Esempio n. 3
0
def get_credentials(request):
    credential = storage.DjangoORMStorage(CredentialsModel, 'id', request.user,
                                          'credential').get()
    return credential.authorize(httplib2.Http())
Esempio n. 4
0
def is_authorized(request):
    credential = storage.DjangoORMStorage(CredentialsModel, 'id', request.user,
                                          'credential').get()
    if credential is None or credential.invalid == True:
        return False
    return True