summaryrefslogtreecommitdiff
path: root/yaksh/pipeline
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/pipeline')
-rw-r--r--yaksh/pipeline/__init__.py0
-rw-r--r--yaksh/pipeline/settings.py47
-rw-r--r--yaksh/pipeline/user.py8
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()