mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 09:31:09 -05:00
64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.contrib.sites.models import Site
|
|
from allauth.socialaccount.models import SocialApp
|
|
from dotenv import load_dotenv
|
|
import os
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Sets up social authentication apps'
|
|
|
|
def handle(self, *args, **kwargs):
|
|
# Load environment variables
|
|
load_dotenv()
|
|
|
|
# Get environment variables
|
|
google_client_id = os.getenv('GOOGLE_CLIENT_ID')
|
|
google_client_secret = os.getenv('GOOGLE_CLIENT_SECRET')
|
|
discord_client_id = os.getenv('DISCORD_CLIENT_ID')
|
|
discord_client_secret = os.getenv('DISCORD_CLIENT_SECRET')
|
|
|
|
if not all([google_client_id, google_client_secret, discord_client_id, discord_client_secret]):
|
|
self.stdout.write(self.style.ERROR('Missing required environment variables'))
|
|
return
|
|
|
|
# Get or create the default site
|
|
site, _ = Site.objects.get_or_create(
|
|
id=1,
|
|
defaults={
|
|
'domain': 'localhost:8000',
|
|
'name': 'localhost'
|
|
}
|
|
)
|
|
|
|
# Set up Google
|
|
google_app, created = SocialApp.objects.get_or_create(
|
|
provider='google',
|
|
defaults={
|
|
'name': 'Google',
|
|
'client_id': google_client_id,
|
|
'secret': google_client_secret,
|
|
}
|
|
)
|
|
if not created:
|
|
google_app.client_id = google_client_id
|
|
google_app.[SECRET-REMOVED]
|
|
google_app.save()
|
|
google_app.sites.add(site)
|
|
|
|
# Set up Discord
|
|
discord_app, created = SocialApp.objects.get_or_create(
|
|
provider='discord',
|
|
defaults={
|
|
'name': 'Discord',
|
|
'client_id': discord_client_id,
|
|
'secret': discord_client_secret,
|
|
}
|
|
)
|
|
if not created:
|
|
discord_app.client_id = discord_client_id
|
|
discord_app.[SECRET-REMOVED]
|
|
discord_app.save()
|
|
discord_app.sites.add(site)
|
|
|
|
self.stdout.write(self.style.SUCCESS('Successfully set up social auth apps'))
|