PIPELINE_ENTRY = 'social_auth.backends.pipeline.misc.save_status_to_session'
+def tuple_index(t, e):
+ for (i, te) in enumerate(t):
+ if te == e:
+ return i
+ return None
def save_status_to_session(request, auth, *args, **kwargs):
"""Saves current social-auth status to session."""
next_entry = setting('SOCIAL_AUTH_PIPELINE_RESUME_ENTRY')
- try:
- if next_entry:
- idx = PIPELINE.index(next_entry)
- else:
- idx = PIPELINE.index(PIPELINE_ENTRY) + 1
- except ValueError:
- idx = None
+ if next_entry:
+ idx = tuple_index(PIPELINE, next_entry)
+ else:
+ idx = tuple_index(PIPELINE, PIPELINE_ENTRY)
+ if idx:
+ idx += 1
data = auth.to_session_dict(idx, *args, **kwargs)