Projet

Général

Profil

Bug #9527

MandayeJS : L'utilisateur ne devrait pas etre associé juste par soumission du formulaire

Ajouté par Josué Kouka il y a plus de 8 ans. Mis à jour il y a environ 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Josué Kouka
Catégorie:
-
Version cible:
-
Début:
06 janvier 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

  • Par défaut linked = False
  • Utiliser un ModelForm
  • Setter linked = True seulement si l'authentication PhantomJS OK

Fichiers

Révisions associées

Révision 7ab17a37 (diff)
Ajouté par Josué Kouka il y a plus de 8 ans

handle user association the right way (#9527)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Aussi détecter depuis la barre qu'on a une association marqué valide et qu'on est connecté à la GRC et qu'on est sur la page de login (/Connext.aspx) dans ce cas => redirection immédiate vers la page post_login:
  • si login réussi retour vers /Default.aspx
  • sinon marquer l'association comme invalide (linked=False, ou alors suppression de l'association) puis retour vers Connect.aspx (et pas associate)

On affiche associate que sur demande explicite de l'utilisateur.

Les URLs /Default.aspx et /Connect.aspx doivent faire partie de la configuration pour Duonet (genre LOGIN_SUCESS_URL et LOGIN_FAILURE_URL).

#2

Mis à jour par Josué Kouka il y a plus de 8 ans

  • Statut changé de Nouveau à En cours
#3

Mis à jour par Josué Kouka il y a plus de 8 ans

Ce patch ne fixe que la partie association/authentication . Concernant la detection de l'association et de la connexion a la GRC je vais le faire dans un autre ticket, vu que Victor veut avoir une recette au plus vite. Ce patch est disponible sur la dev conservatoire-vincennes.dev.entrouvert.org/

/etc/hosts

176.31.146.92 conservatoire-vincennes.dev.entrouvert.org

#4

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

La surcharge de is_valid est inutile, un formulaire vide non soumis (self.data is None) ou vide (self.data == {}) ne peut-être valide, sauf si aucun des champs n'est requis.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Pour être plus Django je copierai form.cleaned_data dans user_credentials.locators plutôt que request.POST.

Pour éviter les doublons je mettrai un index unique (unique=True) sur la FK user du modèle UserCredential, sans index get_or_create() peut produire des doublons.

auto_id=True est inutile, c'est la valeur par défaut.

Ce code ne sert à rien, autant utiliser directement request.user, de plus comme tu n'utilises pas de custom user model, tu n'as pas à utiliser get_user_model, tu peux directement importer django.contrib.auth.models.User.

    User = get_user_model()
    user = User.objects.get(username=request.user.username)

Je mettrai un try/except DoesNotExist autour du user.user_credentials.get() au cas où, et je ferai un delete() sur l'objet UserCredentials plutôt qu'un simple update du champ linked pour des raisons CNIL, c'est déjà pas bien terrible de conserver les mots de passe en clair, quand on dissocie il faut les supprimer complètement, tu peux aussi ne faire qu'un simple .locators = {}.

#7

Mis à jour par Josué Kouka il y a plus de 8 ans

Pour éviter les doublons je mettrai un index unique (unique=True) sur la FK user du modèle UserCredential, sans index get_or_create() peut produire des doublons

Je l'ai fait (différement pour une raison dont je ne rapelle malheureusement plus) http://repos.entrouvert.org/mandayejs.git/tree/mandayejs/mandaye/models.py#n29

#9

Mis à jour par Josué Kouka il y a plus de 8 ans

  • Statut changé de En cours à Résolu (à déployer)
#10

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF