mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 02:11:08 -05:00
- Cleaned up and standardized assertions in ApiTestMixin for API response validation. - Updated ASGI settings to use os.environ for setting the DJANGO_SETTINGS_MODULE. - Removed unused imports and improved formatting in settings.py. - Refactored URL patterns in urls.py for better readability and organization. - Enhanced view functions in views.py for consistency and clarity. - Added .flake8 configuration for linting and style enforcement. - Introduced type stubs for django-environ to improve type checking with Pylance.
127 lines
4.5 KiB
Python
127 lines
4.5 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")
|
|
|
|
# DEBUG: Log environment variable values
|
|
self.stdout.write(
|
|
f"DEBUG: google_client_id type: {
|
|
type(google_client_id)}, value: {google_client_id}"
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: google_client_secret type: {
|
|
type(google_client_secret)}, value: {google_client_secret}"
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: discord_client_id type: {
|
|
type(discord_client_id)}, value: {discord_client_id}"
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: discord_client_secret type: {
|
|
type(discord_client_secret)}, value: {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")
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: google_client_id is None: {google_client_id is None}"
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: google_client_secret is None: {
|
|
google_client_secret is None}"
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: discord_client_id is None: {
|
|
discord_client_id is None}"
|
|
)
|
|
self.stdout.write(
|
|
f"DEBUG: discord_client_secret is None: {
|
|
discord_client_secret is None}"
|
|
)
|
|
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:
|
|
self.stdout.write(
|
|
f"DEBUG: About to assign google_client_id: {google_client_id} (type: {
|
|
type(google_client_id)})"
|
|
)
|
|
if google_client_id is not None and google_client_secret is not None:
|
|
google_app.client_id = google_client_id
|
|
google_app.secret = google_client_secret
|
|
google_app.save()
|
|
self.stdout.write("DEBUG: Successfully updated Google app")
|
|
else:
|
|
self.stdout.write(
|
|
self.style.ERROR(
|
|
"Google client_id or secret is None, skipping update."
|
|
)
|
|
)
|
|
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:
|
|
self.stdout.write(
|
|
f"DEBUG: About to assign discord_client_id: {discord_client_id} (type: {
|
|
type(discord_client_id)})"
|
|
)
|
|
if discord_client_id is not None and discord_client_secret is not None:
|
|
discord_app.client_id = discord_client_id
|
|
discord_app.secret = discord_client_secret
|
|
discord_app.save()
|
|
self.stdout.write("DEBUG: Successfully updated Discord app")
|
|
else:
|
|
self.stdout.write(
|
|
self.style.ERROR(
|
|
"Discord client_id or secret is None, skipping update."
|
|
)
|
|
)
|
|
discord_app.sites.add(site)
|
|
|
|
self.stdout.write(self.style.SUCCESS("Successfully set up social auth apps"))
|