Projet

Général

Profil

Bug #8373

Ne pas planter si jamais il y a deux rôles qui arrivent avec le même nom

Ajouté par Frédéric Péters il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
25 septembre 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Quand on était tout seul, on faisait attention à ça; maintenant que des rôles arrivent d'authentic, on devrait se blinder contre ça.


Fichiers

Révisions associées

Révision 31510a0f (diff)
Ajouté par Frédéric Péters il y a plus de 8 ans

misc: allow duplicated role names (#8373)

This doesn't let the user create such roles as the result will always be
confusing lists but at least it won't crash if an external process creates
such roles.

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 8 ans

Heureusement qu'on a des tests unitaires pour ce genre de truc.

#2

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

Ack.

#3

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 31510a0f65494892e549881f64ad2cdf209d2b93
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Sep 25 14:44:33 2015 +0200

    misc: allow duplicated role names (#8373)

    This doesn't let the user create such roles as the result will always be
    confusing lists but at least it won't crash if an external process creates
    such roles.
#4

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

Pour éviter complètement ce souci avec la propagation des rôles il me semble que je pourrai directement propager l'uuid d'authentic comme id pour les rôles coté w.c.s. Je n'aurai plus du tout de problème de doublon même en cas d'exécution en paralèlle, au pire un hobo_notify réécrit le même fichier (puisqu'on utilise le atomic_write). Qu'en penses-tu ? L'algo serait le suivant:
  • Chercher le rôle par id en utilisant l'uuid
  • Chercher le rôle par slug en utilisant le slug (reprise après un import-wcs-roles)
  • Créer un nouveau rôle avec id <- uuid, name <- name, slug <- uuid
#5

Mis à jour par Frédéric Péters il y a plus de 8 ans

Il n'y a pas l'infra nécessaire pour prendre en charge le changement d'id d'un rôle (aller mettre à jour formulaires, workflows, paramètres avec le nouvel id), pour le moment je ne tenterais donc pas ce changement.

#6

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

Je n'envisage pas de changer les ids des rôles pré-existants, la modification ne s'appliquera que pour les nouveaux rôles et part du principe qu'il est impossible qu'un rôle existant se retrouve avec un id "entier" ressemblant à un uuid.

Quand un rôle arrive d'authentic2 vers hobo_notify, on recherche d'abord si un rôle avec comme id w.c.s. l'uuid authentic2 existe, sinon on cherche un rôle ayant pour slug w.c.s. l'uuid authentic2 (à vrai dire on peut s'en passer si on corrige la démo et peut-être la recette meaux à la main sur ce point), enfin on recherche un rôle ayant pour slug w.c.s. le slug authentic2 (ceci pour migrer depuis la situation pré-existante utilisant import-wcs-roles). Finalement si ces trois conditions sont absentes, on crée un nouveau rôle ayant pour id w.c.s l'uuid authentic2, poud slug w.c.s le slug authentic2, idem pour le nom. Si un rôle est considéré comme nouveau au même moment par deux processus de hobo_notify au pire l'un des deux gagnera la course mais il n'y aura pas de doublon.

#7

Mis à jour par Frédéric Péters il y a plus de 8 ans

Ok, s'il n'y a pas de changement d'id aux rôles existants, ça ne pose pas de soucis. (ça devrait par contre aller dans un autre ticket, celui-ci est fermé).

#8

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

Voilà le #8400.

#9

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Version cible mis à v1.14
#10

Mis à jour par Frédéric Péters il y a plus de 8 ans

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

Formats disponibles : Atom PDF