[Python-modules-commits] [python-social-auth] 03/09: Rewrited pipeline.rst

Wolfgang Borgert debacle at moszumanska.debian.org
Sat Dec 24 15:17:30 UTC 2016


This is an automated email from the git hooks/post-receive script.

debacle pushed a commit to tag v0.2.21
in repository python-social-auth.

commit b3cbdb835119aef8be3d7f9abb1146cc0dc17c36
Author: an0o0nym <an0o0nyme at gmail.com>
Date:   Sat Aug 13 03:15:46 2016 +0200

    Rewrited pipeline.rst
---
 docs/pipeline.rst | 57 +++++++++++++++++++++++++++++--------------------------
 1 file changed, 30 insertions(+), 27 deletions(-)

diff --git a/docs/pipeline.rst b/docs/pipeline.rst
index bd65660..5f4ba07 100644
--- a/docs/pipeline.rst
+++ b/docs/pipeline.rst
@@ -63,7 +63,7 @@ The default pipeline is composed by::
         # Create a user account if we haven't found one yet.
         'social.pipeline.user.create_user',
 
-        # Create the record that associated the social account with this user.
+        # Create the record that associates the social account with the user.
         'social.pipeline.social_auth.associate_user',
 
         # Populate the extra_data field in the social record with the values
@@ -109,8 +109,9 @@ Each pipeline function will receive the following parameters:
     * ``is_new`` flag (initialized as ``False``)
     * Any arguments passed to ``auth_complete`` backend method, default views
       pass these arguments:
-      - current logged in user (if it's logged in, otherwise ``None``)
-      - current request
+      
+      * current logged in user (if it's logged in, otherwise ``None``)
+      * current request
 
 
 Disconnection Pipeline
@@ -199,9 +200,9 @@ three fields:
 ``verified = True / False``
     Flag marking if the email was verified or not.
 
-You should use the code in this instance the build the link for email
-validation which should go to ``/complete/email?verification_code=<code here>``, if using
-Django you can do it with::
+You should use the code in this instance to build the link for email
+validation which should go to ``/complete/email?verification_code=<code here>``. If you are using
+Django, you can do it with::
 
     from django.core.urlresolvers import reverse
     url = strategy.build_absolute_uri(
@@ -226,23 +227,26 @@ Or individually by defining the setting per backend basis like
 Extending the Pipeline
 ======================
 
-The main purpose of the pipeline (either creation or deletion pipelines), is to
-allow extensibility for developers, you can jump in the middle of it, do
-changes to the data, create other models instances, ask users for data, or even
-halt the whole process.
+The main purpose of the pipeline (either creation or deletion pipelines) is to
+allow extensibility for developers. You can jump in the middle of it, do
+changes to the data, create other models instances, ask users for extra data,
+or even halt the whole process.
 
 Extending the pipeline implies:
 
     1. Writing a function
-    2. Locate it in a accessible path (accessible in the way that it can be
-       imported)
-    3. Override the default pipeline definition with one that includes your
-       function.
-
-Writing the function is quite simple. Depending on the place you locate it will
-determine the arguments it will receive, for example, adding your function
-after ``social.pipeline.user.create_user`` ensures that you get the user
-instance (created or already existent) instead of a ``None`` value.
+    2. Locating the function in an accessible path 
+       (accessible in the way that it can be imported)
+    3. Overriding the default pipeline definition with one that includes
+       newly created function.
+
+The part of writing the function is quite simple. However please be careful
+when placing your function in the pipeline definition, because order
+does matter in this case! Ordering of functions in ``SOCIAL_AUTH_PIPELINE``
+will determine the value of arguments that each function will receive. 
+For example, adding your function after ``social.pipeline.user.create_user``
+ensures that your function will get the user instance (created or already existent)
+instead of a ``None`` value.
 
 The pipeline functions will get quite a lot of arguments, ranging from the
 backend in use, different model instances, server requests and provider
@@ -285,7 +289,7 @@ other APIs endpoints to retrieve even more details about the user, store them
 on some other place, etc.
 
 Here's an example of a simple pipeline function that will create a ``Profile``
-class related to the current user, this profile will store some simple details
+class instance, related to the current user. This profile will store some simple details
 returned by the provider (``Facebook`` in this example). The usual Facebook
 ``response`` looks like this::
 
@@ -319,9 +323,9 @@ the timezone in our ``Profile`` model::
             profile.timezone = response.get('timezone')
             profile.save()
 
-Now all that's needed is to tell ``python-social-auth`` to use this function in
-the pipeline, since it needs the user instance, it needs to be put after
-``create_user`` function::
+Now all that's needed is to tell ``python-social-auth`` to use our function in
+the pipeline. Since the function uses user instance, we need to put it after
+``social.pipeline.user.create_user``::
 
     SOCIAL_AUTH_PIPELINE = (
         'social.pipeline.social_auth.social_details',
@@ -336,10 +340,9 @@ the pipeline, since it needs the user instance, it needs to be put after
         'social.pipeline.user.user_details',
     )
 
-If the return value of the function is a ``dict``, the values will be merged
-into the next pipeline function parameters, so, for instance, if you want the
-``profile`` instance to be available to the next function, all that it needs to
-do is return ``{'profile': profile}``.
+So far the function we created returns ``None``, which is taken as if ``{}`` was returned.
+If you want the ``profile`` object to be available to the next function in the
+pipeline, all you need to do is return ``{'profile': profile}``.
 
 .. _python-social-auth: https://github.com/omab/python-social-auth
 .. _example applications: https://github.com/omab/python-social-auth/tree/master/examples

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-social-auth.git



More information about the Python-modules-commits mailing list