Hypertopic / Porphyry

Corpus analyses confrontation
https://hypertopic.org/porphyry
GNU Affero General Public License v3.0
21 stars 165 forks source link

FEATURE: Register as a contributor (see #184 ) #528

Closed theobour closed 3 years ago

theobour commented 3 years ago

Implementation of ticket #184 with @cedfre .

@benel we are still needing some help about the creation. In fact, in subscribe/subscribePage our function handleConnection successfully create a user but then we don't know how to create the session for the user so he appears as connected.

benel commented 3 years ago

@theobour @cedfre

we don't know how to create the session for the user

A session is created by sending a POST on /_session.

You can check how it is done on log in: https://github.com/Hypertopic/Porphyry/blob/d1438c5e1a3198f5d8aec8218bc38c4d6da241d9/src/components/Authenticated.jsx#L75-L81

so he appears as connected.

The user should see the state change in Authenticated when she is redirected to the original page... So there should be nothing to do special in order to make visible the session opening.

theobour commented 3 years ago

I commited some changes. Now, after user creation, I create his session and redirect him to /

As all my commits are a bit "dirty" I will redo all the commit history if you validate this feature

@benel

theobour commented 3 years ago

@benel je viens de corriger toutes vos remarques et j'ai ajouté les traductions dans les messages.po

Désormais tout est bon sauf mon historique des commits qui est un peu long et peu organisé. @JacquesMironneau il me semble que tu l'as fait il y a une ou deux semaine, peux-tu m'aider là dessus ?

Anas9820 commented 3 years ago

@theobour @cedfre

Hello, avec @JacquesMironneau on a remarqué un petit problème au niveau de l'email. En effet, quand on entre un email au mauvais format (comme bobacme.org), l'inscription passe tout de même et il est alors possible de se connecter avec cet email erroné. Peut être que le type "email" dans l'input n'est pas pris en compte?

paasshme commented 3 years ago

Avec @Anas9820 on a regarder un plus en détail, et il serait par exemple possible d'ajouter une verification avec une regexp.

<input type="email" value={ this.state.email } onChange={ handleOnChange } />

let handleOnChange = ( email ) => {
   let regexp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

    if ( regexp.test(email) ) {
     // Le mail est valide
    }
}

Ou alors, pour plus rester dans ce que vous avez fait, mettre le test de regexp au début du handleConnection.

Qu'en pensez-vous ? @cedfre @theobour

paasshme commented 3 years ago

@theobour Pour la gestion de ton historique, tu devrais essayer de faire un: git reset --soft HEAD~14 // Le nombre dépend de ton nombre de commit, mais l'idée est de retourner au commit v7

Ensuite tu add simplement uniquement ce que tu as besoin avec un git add ./fichier Tu peux aussi enlever les éventuels fichiers en trop (le .idea...) avec git reset ./fichier

Puis tu peux faire le commit en faisant git commit

Et tu peux ajouter les Co-author en écrivant le texte ci dessous en dessous du message de commit

Co-authored-by: PseudoGithub \

paasshme commented 3 years ago

D'ailleurs @theobour @cedfre dans les langues nous avons vu 2 petites fautes Pour l'anglais: Pseudonyme (au lieu de pseudonym) Et pour le français, vous avez mis "S'inscire" au lieu de "S'inscrire..."

benel commented 3 years ago

@JacquesMironneau @Anas9820

let handleOnChange = ( email )

Dans la stratégie d'implémentation, on n'avait pas plutôt parlé d'une vérification par le navigateur (grâce à une expression régulière que l"on peut mettre dans les attributs de l'élément HTML) ?

paasshme commented 3 years ago

@benel Nous avions évoquer plusieurs possibilitées durant la dernière réunion, au début nous pensions à l'attribut type='email ' dans l'html, mais ce n'a pas l'air de réellement fonctionner

paasshme commented 3 years ago

Sinon, oui il serait possible d'utiliser l'attribut pattern` avec la regexp proposée ci-dessus.

benel commented 3 years ago

Nous avions évoqué plusieurs possibilitées durant la dernière réunion, au début nous pensions à l'attribut type='email ' dans l'html, mais ce n'a pas l'air de réellement fonctionner

Je viens de regarder sur MDN. Comme souvent la documentation en français est inutilisable. 😢

Par contre vous trouverez votre bonheur dans la version anglaise : https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input/email#pattern_validation

theobour commented 3 years ago

Merci @Anas9820 et @JacquesMironneau pour votre aide ! Du fait que nous utilisons une fonction handleConnection() pour exécuter l'action d'envoyer le formulaire, la vérification du type="email" ne fait pas effet. J'ai donc repris votre solution d'utiliser une expression régulière tout en gardant l'expression régulière du type=email décrite dans la documentation fournit par @benel .

Maintenant que tout est fini, je vais passer à la réorganisation des commits

theobour commented 3 years ago

Merci @JacquesMironneau de m'avoir aidé en vocal pour débloquer la situation sur git.

benel commented 3 years ago

Merci @theobour pour cette contribution.

Du fait que nous utilisons une fonction handleConnection() pour exécuter l'action d'envoyer le formulaire, la vérification du type="email" ne fait pas effet. J'ai donc repris votre solution d'utiliser une expression régulière tout en gardant l'expression régulière du type=email décrite dans la documentation fournit par @benel .

Je n'ai pas compris votre message... Vous avez mis la vérification HTML5 pour me faire plaisir alors qu'elle ne peut pas fonctionner, c'est ça ?

benel commented 3 years ago

Je n'ai pas compris votre message... Vous avez mis la vérification HTML5 pour me faire plaisir alors qu'elle ne peut pas fonctionner, c'est ça ?

Ou alors, vous voulez dire que vous avez déplacé vers React l'expression régulière initialement faite pour HTML5 , c'est ça ?

theobour commented 3 years ago

Je n'ai pas compris votre message... Vous avez mis la vérification HTML5 pour me faire plaisir alors qu'elle ne peut pas fonctionner, c'est ça ?

Ou alors, vous voulez dire que vous avez déplacé vers React l'expression régulière initialement faite pour HTML5 , c'est ça ?

C'est cette option. J'ai déplacé l'expression régulière dans le React, car dans le HTML5 elle n'était pas prise en compte.

Il me semble que maintenant tout est bon pour le merge :)

theobour commented 3 years ago

Bonjour @benel ,

Faut-il encore faire d'autres changement pour valider cette pull request ?

Bonne journée,

benel commented 3 years ago

Intégré en tant que 16dd83420f71345b2b9a08cfce564eb4ddff9abf 🎉