1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-09 22:38:19 +02:00
This commit is contained in:
ak4zh 2024-06-05 10:43:19 -07:00 committed by GitHub
commit 43228fc8bc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,7 +3,10 @@ import logging
from django.conf import settings from django.conf import settings
import requests import requests
from social.apps.django_app.default.models import UserSocialAuth from social.apps.django_app.default.models import UserSocialAuth
try:
from allauth.socialaccount.models import SocialAccount, SocialApp
except ImportError:
SocialAccount, SocialApp = None, None
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -17,37 +20,45 @@ class RefreshTokenNotFound(Exception):
def get_google_consumer_key(): def get_google_consumer_key():
if SocialApp:
app = SocialApp.objects.filter(provider='google').first()
if app:
return app.client_id
return settings.SOCIAL_AUTH_GOOGLE_OAUTH2_KEY return settings.SOCIAL_AUTH_GOOGLE_OAUTH2_KEY
def get_google_consumer_secret(): def get_google_consumer_secret():
if SocialApp:
app = SocialApp.objects.filter(provider='google').first()
if app:
return app.secret
return settings.SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET return settings.SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
def get_google_account(email, key=None):
try:
if SocialAccount:
me = SocialAccount.objects.get(uid=email, provider='google')
else:
me = UserSocialAuth.objects.get(uid=email, provider="google-oauth2")
return me.extra_data[key] if key else me
except (UserSocialAuth.DoesNotExist, SocialAccount.DoesNotExist, KeyError):
raise RefreshTokenNotFound if key == 'refresh_token' else AccessTokenNotFound
def get_google_access_token(email): def get_google_access_token(email):
# TODO: This should be cacheable # TODO: This should be cacheable
try: return get_google_account(email, key='access_token')
me = UserSocialAuth.objects.get(uid=email, provider="google-oauth2")
return me.extra_data['access_token']
except (UserSocialAuth.DoesNotExist, KeyError):
raise AccessTokenNotFound
def update_google_extra_data(email, extra_data): def update_google_extra_data(email, extra_data):
try: me = get_google_account(email)
me = UserSocialAuth.objects.get(uid=email, provider="google-oauth2") me.extra_data = extra_data
me.extra_data = extra_data me.save()
me.save()
except (UserSocialAuth.DoesNotExist, KeyError):
raise AccessTokenNotFound
def get_google_refresh_token(email): def get_google_refresh_token(email):
try: return get_google_account(email, key='refresh_token')
me = UserSocialAuth.objects.get(uid=email, provider="google-oauth2")
return me.extra_data['refresh_token']
except (UserSocialAuth.DoesNotExist, KeyError):
raise RefreshTokenNotFound
def google_api_get(email, url): def google_api_get(email, url):