diff options
Diffstat (limited to 'yaksh/pipeline')
-rw-r--r-- | yaksh/pipeline/__init__.py | 0 | ||||
-rw-r--r-- | yaksh/pipeline/settings.py | 47 | ||||
-rw-r--r-- | yaksh/pipeline/user.py | 8 |
3 files changed, 55 insertions, 0 deletions
diff --git a/yaksh/pipeline/__init__.py b/yaksh/pipeline/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/yaksh/pipeline/__init__.py diff --git a/yaksh/pipeline/settings.py b/yaksh/pipeline/settings.py new file mode 100644 index 0000000..60d706e --- /dev/null +++ b/yaksh/pipeline/settings.py @@ -0,0 +1,47 @@ +AUTH_PIPELINE = ( + # Get the information we can about the user and return it in a simple + # format to create the user instance later. On some cases the details are + # already part of the auth response from the provider, but sometimes this + # could hit a provider API. + 'social.pipeline.social_auth.social_details', + + # Get the social uid from whichever service we're authing thru. The uid is + # the unique identifier of the given user in the provider. + 'social.pipeline.social_auth.social_uid', + + # Verifies that the current auth process is valid within the current + # project, this is where emails and domains whitelists are applied (if + # defined). + 'social.pipeline.social_auth.auth_allowed', + + # Checks if the current social-account is already associated in the site. + 'social.pipeline.social_auth.social_user', + + # Make up a username for this person, appends a random string at the end if + # there's any collision. + 'social.pipeline.user.get_username', + + # Send a validation email to the user to verify its email address. + # Disabled by default. + # 'social.pipeline.mail.mail_validation', + + # Associates the current social details with another user account with + # a similar email address. Disabled by default. + 'social.pipeline.social_auth.associate_by_email', + + # Create a user account if we haven't found one yet. + 'social.pipeline.user.create_user', + + # Create a profile if profile does not exist + 'yaksh.pipeline.user.save_profile', + + # Create the record that associated the social account with this user. + 'social.pipeline.social_auth.associate_user', + + # Populate the extra_data field in the social record with the values + # specified by settings (and the default ones like access_token, etc). + 'social.pipeline.social_auth.load_extra_data', + + # Update the user record with any changed info from the auth service. + 'social.pipeline.user.user_details', +) diff --git a/yaksh/pipeline/user.py b/yaksh/pipeline/user.py new file mode 100644 index 0000000..4aecd95 --- /dev/null +++ b/yaksh/pipeline/user.py @@ -0,0 +1,8 @@ +from yaksh.models import Profile +#from django.contrib.auth.models import User + +def save_profile(backend, user, response, *args, **kwargs): + if not hasattr(user, 'profile'): + profile = Profile.objects.create(user=user) + profile.roll_number = profile.id + profile.save() |