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")
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
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)
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/")
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/")
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)
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