-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intégration des comptes réseaux sociaux #1424
Conversation
Au delà de ça, on est que deux à avoir discuté de ça, on a pas l'avis d'autres gens, ça me semble léger, même si je suis plutôt pour cette intégration. |
La doc du code front est inexistante. Je ne peux pas deviner ou mettre les bons éléments (j'ai déjà eu du mal à retrouver le css qu'il fallait modifier pour avoir un minimum de rendu). J'attends des PR sur cette branche pour fixer le front. Une doc serait encore mieux, car là c'est un peu le bordayle dans les scss.
bah si ça ne plait pas a ne sera pas une grande perte, vu le temps que ça m'a pris. |
C'est pas un problème de doc... faut revoir l'interface pour intégrer les boutons de façon réfléchie, pas balancés à l'arrache au dessus du formulaire. |
Doc ou complétude du front. Là j'ai regardé dans les sprites, et j'ai aucune image pour les reseaux sociaux, aucune gestion correcte des grilles dans les pages. Donc partant de là, difficile de faire un truc élégant sans revoir encore chaque page. 'fin bref ... j'attend une PR pour améliorer le front, ici le but c'est surtout de tester que coté back tout va bien. |
Pourquoi on devrait les avoir ? On ne s'en sert nul part.
On ne s'en sert nul part
Peut-être parce que, pour le coup, il faut revoir les pages ? |
Il faudrait en discuter, mais pour moi si on présente cette fonctionnalité (je n'en vois pas l'utilité mais je n'ai rien contre non plus), c'est la connexion standard qui devrait être mise en valeur. Quant à la doc, je ne comprends pas bien : les dernières informations que j'avais dessus, c'est qu'elle était super rapide à faire. |
@@ -33,3 +33,4 @@ https://github.com/zestedesavoir/Python-ZMarkdown/archive/2.4.1-zds.10.zip | |||
flake8 | |||
autopep8 | |||
easy-thumbnails | |||
python-social-auth |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour rester cohérent avec la PR #1418, il faudrait préciser la version utilisée
@firm1 : Sera t'il possible a un compte existant de lié son compte actuel avec un de ceux des RS ? |
Si @Alex-D . Ce n'est pas parce que ton code est évident pour toi que c'est le cas pour tout le monde. Sans documentation tu ne peux pas reprocher aux gens de faire comme ils peuvent avec ce qu'ils ont. Je ne sais pas si @firm1 a fait l'effort ou non, qu'il l'a fait a l'arrache ou a vraiment cherché, mais tu ne peux pas lui repprocher tant qu'on a aucune documentation ni guideline. Donc de là, plusieurs solutions :
|
Non. On va pas se mettre a merger des trucs sans cohérence graphique, ca rime a rien. |
C'est bien ça le souci le design est assez pauvre en élements graphiques (n'importe quel pack d'icone propose des icones de reseaux sociaux) et pas flexible, du coup chaque nouveau truc à rajouter est une plaie.
Je suppose que tu parle de mise en valeur graphique ? Si c'est le cas, c'est un problème de front-end, mais le design en l'état étant vraiment trop contraignant, et pas flexible. Pour rajouter un nouveau bouton dans une page il faut revoir complètement les css, donc je laisse la main au front sur ce point.
En soit tout est possible. Mais ce que tu demandes c'est l'objet d'une ZEP pas encore finalisée il me semble. Là je me suis juste attaqué à l'issue |
Cette phrase illustre parfaitement que tu es très certainement un bon dev back, mais un très très mauvais dev front. Pourquoi ? Parce que le front doit être le plus léger possible, c'est ce qu'on envoie au client, ça bouffe du réseau sur le serveur et chez le client. Si on commence à ajouter 150 icônes dans le sprite, il fera 150Mo alors qu'on a besoin que de 5 icônes. Donc, après te voir nous dire "il faudrait compresser le sprite" c'est juste LOLesque, parce que ce sont deux idées opposées : d'un côté ça ne te dérange pas d'avoir des icônes inutiles, mais de l'autre tu veux quand même optimiser l'image pour gagner quelques ko VS les Mo qu'on perd d'un autre côté. Donc la réponse simple à cela est : on a jamais eu besoin d'icônes de réseaux sociaux jusque là, c'est donc tout à fait logique qu'on ne les ait pas dans le sprite. Avant de dire "y a pas de doc" faut aussi réfléchir à comment est conçu le truc. C'est pour cette raison même que je n'aime pas les frameworks CSS : ils sont beaucoup trop lourds pour rien. Nul part sur le site on utilise des grilles, parce que tout est trop spécifique et rien ne se ressemble. C'est pour ça que les seules grilles existantes sont là pour faire du 2 ou 3 colonnes et encore. Enfin bref, c'est un POC back qui nécessite de refaire partiellement le front pour l'intégrer. |
En général quand on travaille avec des sprites, on en fait plusieurs. Typiquement un sprite |
Il y a alors deux écoles :
L'aisance de développement ne doit pas entraver les performances. |
Bon bah conflit ici ... :( Ceci dit, toujours en attente d'une PR pour le design de cette page (c'est vraiment vraiment pénible de devoir revoir les css pour chaque nouveau bouton rajouter ... vraiment pénible) |
C'était une issue v2, on bosse sur d'autres choses tandis qu'ici ça ne presse pas. Pas la peine d'en rajouter une louche à chaque message. |
Chouette ! On va avoir notre doc ! |
09c587f
to
c493a3f
Compare
C'est normal que les images soient pas centrées dans les boutons ? |
Changes Unknown when pulling 6bcb8d6 on firm1:social-integration into * on zestedesavoir:dev*. |
Oui, les icônes doivent être accompagnées d'un texte lorsqu'elles sont présentes dans un bouton, comme présenté dans la documentation tout en bas dans la section "Icônes". Tels qu'ils sont placés là, ça n'est de toute façon pas du tout ergonomique, ces boutons sont un moyen alternatif de connexion, ils doivent être visuellement séparés du formulaire traditionnel. |
ecd7177
to
b2b0d5e
Compare
Rebasé et corrigé. QA can continue |
QA or not QA ? That's the question |
Je l'aurais bien fait mais je n'ai pas tous les comptes des réseaux sociaux que tu utilises. |
Fais la QA pour G+ et Twitter, quelqu'un d'autre fera Facebook. Ca sera toujours ça de fait. |
Bon, perso j'ai essayé les 3, je me suis vautré pour créer les comptes sur les trois...
|
Bon, pour ceux qui veulent QA, j'ai crée un compte bidon pour Google et les infos sont : #zds/settings_prod.py
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY="651539647051-fnd4cqkb6vv2egeq4b5qqtvenuoreq5c.apps.googleusercontent.com"
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET="4isKwv7_MaNlp5hryfOPvqAa " Pensez à lancer votre serveur python sur |
J'essayerais de QA ça vu qu'à priori personne n'est familier avec les API de ces outils, les ayant déjà utilisé tous les trois, je devrais pouvoir m'en sortir \o/ |
Bon, j'essairai de regarder pour google... Mais sinon je suppose qu'on va devoir faire ca en mode "je fais confiance a firm1" et confirmer sur la preprod non ? Car sinon cette PR ne verra jamais le merge... |
form.helper.form_action += "?next=" + next_page | ||
else: | ||
form = LoginForm() | ||
form.helper.form_action = reverse("zds.member.views.login_view") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faut une indentation la non ? (je suis en train de rebaser pour faire un test propre)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je suis incapable de le dire comme ça, mais je crois que ce que j'ai fait a l'époque là dessus était bon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Si tu regardes bien, la ligne 647 ecraserait ce que tu fais à la ligne 644 dans tout les cas... Ce serait pas logique
Bon, J'ai fait ZE rebase, je fais la QA pour google via les données filé par @firm1 et je ferais une branche que je mergerais moi-même car j'ai pas envie de refaire cette QA. Est-ce que ca va a tout le monde ? |
ça me va perso |
@firm1 avec ton truc google j'ai une 401 (401 Client Error: Unauthorized) |
Arf, tu démarre bien sur le 127.0.0.1 ? |
Yep. Je viens de forcer le demarrage du serveur sur l'ip/port pour etre sur et toujours pareil |
Re-check avec ça stp :
Toujours sur le 127.0.0.1 et sur le port 8000 |
erreur 400. That’s an error. Error: redirect_uri_mismatch |
Et là ? |
Toujours erreur 400... |
The redirect URI in the request: http://127.0.0.1:8000/complete/google-oauth2/ did not match a registered redirect URI. Request Details
|
Allez un autre essai ? Voilà pourquoi je n'aime pas laisser dormier les PRs longtemps, on fini par oublier comment on avait fait |
Je passe google mais de nouveau une 403 quand ca redirige vers le site |
Arf, bon si tu peux me PR ton rebase, je vais revérifier ça. |
ok je fais la branche de suite ! |
Voili voila : #1799 |
HS : une PR plus longue a rédiger que de taper le code \o/
Cette PR intègre au site la connexion via les réseaux sociaux Facebook, Twitter, et Google.
Le principe est assez simple. Un utilisateur qui veut s'inscrire ou se loguer sur le site, a désormais 4 possibilité
Par défaut lorsque l'on s'inscrit via un compte réseau social, le compte est crée dans la base des utilisateurs de zds. Et on est directement connecté avec ce nouveau compte. On peut changer par la suite notre pseudo et toutes les autres informations de profil.
Les authentifications sont faites directement via les API Oauth2 d'authentifications, donc tout est sécurisé.
Note pour QA
Cette PR est assez complexe a tester, mais ça vaut le coup je pense. Etant donné que je ne peux pas renseigner les clés des applications sociales des vrais comptes du site, la QA va bosser un peu. Il faut donc après avoir crée un fichier vide dans
zds-site/zds/settings_prod.py
.settings_prod.py
rajouter les variablesSOCIAL_AUTH_FACEBOOK_KEY = "clé"
et
SOCIAL_AUTH_FACEBOOK_SECRET = "secret"
obtenu via l'application facebookhttp://127.0.0.1:8000/complete/twitter/
(adaptez l'ip en fonction de l'adresse sur laquelle vous testez zds en local)settings_prod.py
rajouter les variablesSOCIAL_AUTH_TWITTER_KEY = "clé"
et
SOCIAL_AUTH_TWITTER_SECRET = "secret"
obtenu via l'application twitterhttp://127.0.0.1:8000/complete/google-oauth2/
(adaptez l'ip en fonction de l'adresse sur laquelle vous testez zds en local)settings_prod.py
rajouter les variablesSOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "clé"
etSOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "secret"
obtenu via l'application googleAprès ce paramétrage, essayez de vous connecter via chaque compte, et jouez avec.
Je laisse un screen du rendu.