def social_auth_backends(request): """Load Social Auth current user data to context. Will add a output from backends_data to context under social_auth key. """ def context_value(): return backends_data(request.user) return {'social_auth': LazyDict(context_value)}
def social_auth_by_type_backends(request): """Load Social Auth current user data to context. Will add a output from backends_data to context under social_auth key where each entry will be grouped by backend type (openid, oauth, oauth2). """ def context_value(): data = backends_data(request.user) data['backends'] = group_backend_by_type(data['backends']) data['not_associated'] = group_backend_by_type(data['not_associated']) data['associated'] = group_backend_by_type( data['associated'], key=lambda assoc: assoc.provider) return data return {'social_auth': LazyDict(context_value)}
def social_auth_by_name_backends(request): """Load Social Auth current user data to context. Will add a social_auth object whose attribute names are the names of each provider, e.g. social_auth.facebook would be the facebook association or None, depending on the logged in user's current associations. Providers with a hyphen have the hyphen replaced with an underscore, e.g. google-oauth2 becomes google_oauth2 when referenced in templates. """ def context_value(): keys = [key for key in list(get_backends().keys())] accounts = dict(list(zip(keys, [None] * len(keys)))) user = request.user if hasattr(user, 'is_authenticated') and user.is_authenticated(): accounts.update( (assoc.provider, assoc) for assoc in UserSocialAuth.get_social_auth_for_user(user)) return accounts return {'social_auth': LazyDict(context_value)}