Repository: zestedesavoir/zds-site

Issue:
La notification par email est cassee si on s'enregistre par un compte social
La notification par email est cassée si on s'enregistre par un compte social.

Scénario :
- A est enregistre par un compte "social" (facebook, twitter...) ;
- A poste dans un forum et s'inscrit a la notification par email ;
- B répond dans le topic ;
- B se prend une 500 car le serveur SMTP galère avec l'email.

Ce cas a été testé avec une personne inscrite via Twitter.

Cependant, l'envoi de MP semble OK.



Discussion:
C'est bloquant. On ne peut pas répondre aux sujets sur le forum.

On enregistre pas l'email, donc c'est logique que ça bloque.

Pour Facebook, il suffit de rajouter une variable nommé SOCIAL_AUTH_FACEBOOK_SCOPE = ['email'] - [cf docs](http://psa.matiasaguirre.net/docs/backends/facebook.html).

Mais twitter ne fournit pas d'adresse email comme [ça](https://dev.twitter.com/faq#26). 

Une idée pour régler le bogue rapidement pourrait de rédiger une page avec juste un champ email et lui de demander de rentrer son adresse email avec validation du mail.

Ou simplement d'afficher un dialogue lorsque l'utilisateur clique sur la création du compte par Twitter.

Plus sérieusement, comment on fait ? On se tape du code spécifique de partout juste pour gérer les comptes créés via des API tierces qui ne fournissent pas le minimum d'informations ?

Personnellement j'ai très envie de faire sauter la connexion via Twitter là...

C'est pas très compliqué a implanté, la solution proposée, si personne se dévoue, je peut faire ça pour dimanche prochain (1 février).

Le problème c'est qu'il n'y a _pas_ de solution proposée lorsque la personne est inscrite via Twitter. Juste des débuts d'idées.

Cette issue est marquée comme bloquante. Est-ce qu'elle l'est vraiment ? Je n'en ai pas l'impression.

Dans la mesure où ceux qui sont inscrit via un réseau social se retrouvent avec un site cassé, c'est quand même très emmerdant.

C'est un bug emmerdant mais ce n'est pas bloquant. Après, je pense qu'il y a une PR en cours donc je suppose que c'est pas bien important, l'issue sera sans doute réglée avant la fin des 2 semaines pour la release 1.6.

On a une PR en cours sur un problème dont on a aucune solution ? Je m'inquiète là (en plus de ne pas la voir dans la liste des PR).

Sorry, je pensais que @DevHugo avait déjà proposé une PR sur le sujet. J'ai rêvé.

On fait quoi ici ? On planque le problème sous le tapis en espérant que personne ne se serve de cette fonctionnalité ? On l'enlève purement et simplement ? On exige une adresse mail à la première connexion avec un compte externe ?

> On planque le problème sous le tapis en espérant que personne ne se serve de cette fonctionnalité ?

Surtout pas.

On pourrait exiger une adresse mail à la première connexion, mais je me demande s'il y'a pas plus propre comme méthode.

Si aucune solution n'est proposée d'ici la fin des tests de la release v1.6, je propose de supprimer Twitter des réseaux sociaux supportés. Puis, vu comment s'est partie, on va sûrement proposer un fix temporaire un peu crade alors que nous pourrions proposer une version plus propre et plus adaptée par la suite.

> Si aucune solution n'est proposée d'ici la fin des tests de la release v1.6, je propose de supprimer Twitter des réseaux sociaux supportés. 

OK pour ça.

Bon ben c'est parti : Twitter dégage.


Resolving patch:
diff --git a/zds/settings.py b/zds/settings.py
--- a/zds/settings.py
+++ b/zds/settings.py
@@ -470,7 +470,6 @@
 
 AUTHENTICATION_BACKENDS = ('social.backends.facebook.FacebookOAuth2',
                            'social.backends.google.GoogleOAuth2',
-                           'social.backends.twitter.TwitterOAuth',
                            'django.contrib.auth.backends.ModelBackend')
 SOCIAL_AUTH_GOOGLE_OAUTH2_USE_DEPRECATED_API = True
 
@@ -490,8 +489,6 @@
 # redefine for real key and secret code
 SOCIAL_AUTH_FACEBOOK_KEY = ""
 SOCIAL_AUTH_FACEBOOK_SECRET = ""
-SOCIAL_AUTH_TWITTER_KEY = "bVWLd2pDe6F12SXRa5FQyVTze"
-SOCIAL_AUTH_TWITTER_SECRET = "pwdQ3trdMdT7Y669aKRwVM6tivrYsx3psbFnRJ5Tq4Wy1VjBNk"
 SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "696570367703-r6hc7mdd27t1sktdkivpnc5b25i0uip2.apps.googleusercontent.com"
 SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "mApWNh3stCsYHwsGuWdbZWP8"
 


Test patch: