示例#1
0
def deauth(request):
    user = request.user
    credential = None
    storage = Storage(CredentialsModel, 'id', user, 'credential')
    storage.delete()
    if 'group' in request.GET:
        group_name = request.GET['group']
        return HttpResponseRedirect("authorize?group=" + group_name)
    else:
        return HttpResponseRedirect("authorize")
示例#2
0
    def process_exception(self, request, exception):
        if isinstance(exception, AccessTokenRefreshError):
            storage = Storage(CredentialsModel, 'user', request.user, 'credential')
            storage.delete()

            return HttpResponseBadRequest(
                content=b'{"message": "%s"}' % exception.message,
                content_type='application/json')

        return None
示例#3
0
    def test_delete_handler(self):
        user = get_user_model().objects.get(pk=self.user_with_analytics.pk)

        self.assertTrue(user.has_analytics)
        self.assertEqual(CredentialsModel.objects.all().count(), 1)

        storage = Storage(CredentialsModel, 'user', user, 'credential')
        storage.delete()

        user = get_user_model().objects.get(pk=self.user_with_analytics.pk)
        self.assertFalse(user.has_analytics)
        self.assertEqual(CredentialsModel.objects.all().count(), 0)
示例#4
0
def unlink_confirm(request, id):
    ac = AppCreds.objects.get(user=request.user, id=id)

    # Delete updaters
    updaters = _get_updaters(request.user, ac)
    for updater in updaters:
        updater.delete()

    # Delete credential
    storage = Storage(CredentialsModel, 'id', ac, 'credential')
    storage.delete()

    # Delete AppsCred
    ac.delete()

    return HttpResponseRedirect("/accounts/")
示例#5
0
文件: views.py 项目: google/mirandum
def unlink_confirm(request, id):
  ac = PatreonAppCreds.objects.get(user=request.user, id=id)

  # Delete updaters
  updaters = _get_updaters(request.user, ac)
  for updater in updaters:
    updater.delete()

  # Delete credential
  storage = Storage(PatreonCredentialsModel, 'id', ac, 'credential')
  storage.delete()

  # Delete AppsCred
  ac.delete()

  return HttpResponseRedirect("/accounts/")
示例#6
0
文件: views.py 项目: sorlandet/code
    def get(self, request):
        storage = Storage(CredentialsModel, 'user', request.user, 'credential')
        credential = storage.get()

        key = analytics_settings.FLOW_CACHE_KEY_PLACEHOLDER % request.user.id

        logger.debug('Deleting OAuth2 Web server Flow to cache with key: %s', key)

        cache.delete(key)

        if credential:
            http = httplib2.Http()
            http = credential.authorize(http)
            try:
                credential.revoke(http)
            except TokenRevokeError:
                pass
            storage.delete()

        return Response({}, status=status.HTTP_200_OK)
示例#7
0
def _get_google_credential(request):
    token = None
    credential = None
    if request.user.is_authenticated():
        storage = Storage(TokenStorageModel, 'id', request.user, 'credential')
        credential = storage.get()
    elif request.session.get('access_token'):
        credential = google_client.OAuth2Credentials.from_json(token)

    if credential:
        try:
            credential.get_access_token()
        except HttpAccessTokenRefreshError:
            try:
                credential.revoke(httplib2.Http())
            except TokenRevokeError:
                storage.delete()

    if not credential or credential.invalid:
        google_flow = generate_google_web_flow(request)
        return HttpResponseRedirect(google_flow.step1_get_authorize_url())
    return credential