def handle(self, *args, **options): try: site = Site.objects.get(id=settings.SITE_ID) except Site.DoesNotExist: self.stderr.write('No primary domain configured. Please run: ' 'python manage.py devilry_setup_primary_domain') raise SystemExit() client_id = options['client_id'] secret = getpass('Please type your Dataporten OAuth Client Secret: ') if not secret: self.stderr.write('Secret is required') raise SystemExit() try: socialapp = SocialApp.objects.get(provider=DevilryDataportenProvider.id) except SocialApp.DoesNotExist: socialapp = SocialApp(provider=DevilryDataportenProvider.id) socialapp.name = 'Devilry Dataporten' socialapp.client_id = client_id socialapp.secret = secret socialapp.full_clean() socialapp.save() if not socialapp.sites.filter(id=settings.SITE_ID).exists(): socialapp.sites.add(site) self.stdout.write('Dataporten provider successfully configured.')
def handle(self, *args, **options): try: site = Site.objects.get(id=settings.SITE_ID) except Site.DoesNotExist: self.stderr.write('No primary domain configured. Please run: ' 'python manage.py devilry_setup_primary_domain') raise SystemExit() client_id = options['client_id'] secret = getpass('Please type your Dataporten OAuth Client Secret: ') if not secret: self.stderr.write('Secret is required') raise SystemExit() try: socialapp = SocialApp.objects.get( provider=DevilryDataportenProvider.id) except SocialApp.DoesNotExist: socialapp = SocialApp(provider=DevilryDataportenProvider.id) socialapp.name = 'Devilry Dataporten' socialapp.client_id = client_id socialapp.secret = secret socialapp.full_clean() socialapp.save() if not socialapp.sites.filter(id=settings.SITE_ID).exists(): socialapp.sites.add(site) self.stdout.write('Dataporten provider successfully configured.')
def run(): # create postgres extension with connection.cursor() as cursor: try: cursor.execute('create extension hstore;') except django.db.ProgrammingError as ex: if 'already exists' not in str(ex): raise LOG.info(str(ex).strip()) else: LOG.info('extension hstore created') # create superuser User = get_user_model() admin_email = settings.ENV_CONFIG.admin_email try: admin = User.objects.get(username='******') except User.DoesNotExist: LOG.info('create admin user') User.objects.create_superuser('admin', admin_email, 'admin') else: LOG.info('update admin user email') admin.email = admin_email admin.save() # update site root_url = urlparse(settings.ENV_CONFIG.root_url) LOG.info('update site info') site = Site.objects.get_current() site.domain = root_url.netloc site.name = root_url.netloc site.save() # create social app client_id = settings.SOCIAL_APP_GITHUB['client_id'] secret = settings.SOCIAL_APP_GITHUB['secret'] provider = GitHubProvider.id try: social_app = SocialApp.objects.get(provider=provider, name='github') except SocialApp.DoesNotExist: LOG.info('create github social app') social_app = SocialApp(provider=provider, name='github', client_id=client_id, secret=secret) else: LOG.info('update github social app') social_app.client_id = client_id social_app.secret = secret social_app.save() if not social_app.sites.filter(pk=site.pk).exists(): social_app.sites.add(site) social_app.save()
def handle(self, *args, **options): changed = False try: app = SocialApp.objects.get(provider=HelsinkiProvider.id) except SocialApp.DoesNotExist: app = SocialApp(provider=HelsinkiProvider.id) self.stdout.write(self.style.SUCCESS('Creating new SocialApp')) if not app.name: app.name = 'Helsingin kaupungin työntekijät' changed = True client_id = secret_key = None jwt_settings = getattr(settings, 'JWT_AUTH') if jwt_settings: client_id = jwt_settings.get('JWT_AUDIENCE') secret_key = jwt_settings.get('JWT_SECRET_KEY') if not client_id: raise ImproperlyConfigured( "You must set JWT_AUTH['JWT_AUDIENCE'] to correspond to your client ID" ) if not secret_key: raise ImproperlyConfigured( "You must set JWT_AUTH['JWT_SECRET_KEY'] to correspond to your secret key" ) if app.client_id != client_id: changed = True app.client_id = client_id if app.secret != secret_key: changed = True app.secret = secret_key if changed: app.save() if not app.sites.exists(): from django.contrib.sites.models import Site app.sites.add(Site.objects.get(id=settings.SITE_ID)) changed = True if changed: self.stdout.write( self.style.SUCCESS('SocialApp successfully updated')) else: self.stdout.write( self.style.NOTICE('Already synced -- no changes needed'))
def handle(self, *args, **options): changed = False try: app = SocialApp.objects.get(provider=HelsinkiProvider.id) except SocialApp.DoesNotExist: app = SocialApp(provider=HelsinkiProvider.id) self.stdout.write(self.style.SUCCESS('Creating new SocialApp')) if not app.name: app.name = 'Helsingin kaupungin työntekijät' changed = True client_id = secret_key = None jwt_settings = getattr(settings, 'JWT_AUTH') if jwt_settings: client_id = jwt_settings.get('JWT_AUDIENCE') secret_key = jwt_settings.get('JWT_SECRET_KEY') if not client_id: raise ImproperlyConfigured("You must set JWT_AUTH['JWT_AUDIENCE'] to correspond to your client ID") if not secret_key: raise ImproperlyConfigured("You must set JWT_AUTH['JWT_SECRET_KEY'] to correspond to your secret key") if app.client_id != client_id: changed = True app.client_id = client_id if app.secret != secret_key: changed = True app.secret = secret_key if changed: app.save() if not app.sites.exists(): from django.contrib.sites.models import Site app.sites.add(Site.objects.get(id=settings.SITE_ID)) changed = True if changed: self.stdout.write(self.style.SUCCESS('SocialApp successfully updated')) else: self.stdout.write(self.style.NOTICE('Already synced -- no changes needed'))
from django.contrib.sites.models import Site from allauth.socialaccount.models import SocialApp import os # More about the following here: https://wsvincent.com/django-allauth-tutorial/ first_site = Site.objects.get(pk=1) first_site.name = os.environ['TWITTER_HOST'] first_site.domain = os.environ['TWITTER_HOST'] first_site.save() # More about the following here: https://django-allauth.readthedocs.io/en/latest/providers.html social_app = SocialApp.objects.filter(provider='twitter') if not social_app: social_app = SocialApp() else: social_app = social_app[0] social_app.provider = 'twitter' social_app.name = 'Twitter' social_app.client_id = os.environ['TWITTER_CONSUMER_KEY'] social_app.secret = os.environ['TWITTER_CONSUMER_SECRET'] social_app.save() social_app.sites.add(first_site)
# admin is staff and superuser # pass is admin # default site, for password reset site = Site.objects.all()[0] name = settings.PRODUCTION_URL.split('//')[1] site.domain = name site.name = name site.save() from allauth.socialaccount.models import SocialApp fb = SocialApp() fb.provider = "facebook" fb.name = "Facebook" fb.client_id = "207371922661306" fb.key = '' fb.secret = "67e595cb85d9836c305fe4b9985180df" fb.save() g = SocialApp() g.provider = "google" g.name = "Google" g.client_id = "236816371004-c46h64qimvsqffbrdt8k5o5hq90iigjh.apps.googleusercontent.com" g.key = '' g.secret = "n6NuvZ1_jAqKq_r6V6pWQ8Ii" g.save() for app in SocialApp.objects.all(): app.sites.add(site) app.save()