2016-02-05 5 views
0

Mon Pipline est inférieure àaide-python-social auth Je cherche à accéder à ce fournisseur de back-end la personne utilise au milieu de la canalisation

PIPELINE = (
    'social.pipeline.social_auth.social_details', 
    'social.pipeline.social_auth.social_uid', 
    'social.pipeline.social_auth.auth_allowed', 
    'social.pipeline.social_auth.social_user', 
    'create_user_and_set_email_as_username', 
    'social.pipeline.social_auth.associate_by_email', 
    'social.pipeline.social_auth.associate_user', 
    'social.pipeline.social_auth.load_extra_data', 
    'social.pipeline.user.user_details', 
    ) 

Le create_user_and_set_email_as_username est la fonction que je construit pour faire un peu supplémentaire choses à l'utilisateur. C'est arrivé à l'étape où, dans cette fonction, je veux être en mesure de chasser les utilisateurs qui n'utilisent pas un client oauth particulier. (Nous avons des clients d'entreprise qui veulent forcer leurs employés à utiliser azure oauth2).

Je n'arrive pas à comprendre comment accéder au backend actuellement utilisé dans cette fonction. IE ce que la personne a cliqué et quel service ils essayent d'utiliser. Essayé de pdb'ing et en regardant les composants de la stratégie, mais ne pouvait rien y voir d'utile. Est-ce que j'essaye même de faire ceci au bon endroit?

Comment puis-je accéder à quel backend ils essayent d'utiliser. Essayé strategy.get_backends() mais que les listes possibles ne sont pas celles en cours.

Répondre

0

J'ai compris ce que je devais faire.

disons expected_oauth_provider est ce que vous voulez qu'ils utilisent. Ensuite, dans toute fonction ajoutée au pipeline, vous devriez prendre ** kwargs et accéder à ce qu'ils utilisent vraiment.

if expected_oauth_provider != kwargs.get('backend').name: 
    return HttpResponse("You cannot use your companies accounts that are not " + rule.force_oauth_provider, status=405)