diff --git a/src/account/auth_pipeline.py b/src/account/auth_pipeline.py new file mode 100644 index 0000000000000000000000000000000000000000..b1918c536d09e7b1de94f3c63c249ed6eff9e5f2 --- /dev/null +++ b/src/account/auth_pipeline.py @@ -0,0 +1,11 @@ +from django.core import exceptions + +from . import models + + +def create_profile(backend, user, response, *args, **kwargs): + if backend.name == 'authsch': + try: + user.profile + except exceptions.ObjectDoesNotExist: + models.Profile.objects.create(user=user) diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py index c34b78ca760e4db8ae614b18dc5351a563776aae..fa2f7b0841e925bfac445e56817b76a5eef241d1 100644 --- a/src/kszkepzes/settings/base.py +++ b/src/kszkepzes/settings/base.py @@ -115,6 +115,19 @@ AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', ] +SOCIAL_AUTH_PIPELINE = ( + 'social_core.pipeline.social_auth.social_details', + 'social_core.pipeline.social_auth.social_uid', + 'social_core.pipeline.social_auth.auth_allowed', + 'social_core.pipeline.social_auth.social_user', + 'social_core.pipeline.user.get_username', + 'social_core.pipeline.user.create_user', + 'account.auth_pipeline.create_profile', + 'social_core.pipeline.social_auth.associate_user', + 'social_core.pipeline.social_auth.load_extra_data', + 'social_core.pipeline.user.user_details', +) + SOCIAL_AUTH_AUTHSCH_KEY = os.getenv('AUTHSCH_KEY') SOCIAL_AUTH_AUTHSCH_SECRET = os.getenv('AUTHSCH_SECRET') SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'