Projet

Général

Profil

Development #35773

import csv, ajout d'un rôle

Ajouté par Marie Kuntz il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
03 septembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Lors de l'import csv d'utilisateurs, ce serait bien d'ajouter la possibilité de mettre les utilisateurs dans un rôle :
  • soit dans une colonne du csv (role id ? slug du rôle ?)
  • soit dans l'interface d'import, on ajoute un menu déroulant où l'on choisit le/les rôle.s

Fichiers


Demandes liées

Bloqué par Authentic 2 - Bug #36832: import csv : certaines erreurs ne sont pas affichéesFermé10 octobre 2019

Actions
Bloque Authentic 2 - Development #35774: import csv, gestion du mot de passeFermé03 septembre 2019

Actions

Révisions associées

Révision 64157da7 (diff)
Ajouté par Valentin Deniaud il y a plus de 4 ans

csv_import: make sure has_errors is toggled (#35773)

Révision f12353d8 (diff)
Ajouté par Valentin Deniaud il y a plus de 4 ans

csv_import: allow adding roles (#35773)

Révision 7f638585 (diff)
Ajouté par Valentin Deniaud il y a plus de 4 ans

update translations (#35773)

Historique

#1

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

Si les rôles sont dans le CSV rapidement arrive la question : est-ce la liste exhaustive des rôles de chaque utilisateur ? Autrement dit, retire-t-on à chacun les rôles qui ne lui sont pas attribués dans le CSV ?

#2

Mis à jour par Marie Kuntz il y a plus de 4 ans

Cas posé uniquement par les modifications. Je propose qu'il s'agisse d'un ajout simple de rôle, ça me paraît plus facile plus l'import si on ne doit pas passer sur les rôles de chaque utilisateur pour vérifier qu'on n'en oublie pas.

#3

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

  • Catégorie mis à 525

Réservons ce ticket pour un import via le CSV pas d'ajout à l'interface.

Il y a déjà un fonctionnalité de modifier prévue pour gérer ajout, suppression, écrasement.

Je dirai de ne prévoir que l'ajout d'un unique rôle par cellule, si besoin d'ajouter plusieurs rôles on fait plusieurs lignes, en général sur un import initial on ajoutera qu'un rôle (sinon c'est que la hiérarchie des rôles est mal branlée).

Par défaut je dirai de regarder le rôle uniquement dans l'OU cible ça évitera d'avoir à indiquer l'OU en général, on pourra désigner un rôle par son slug ou son nom, ça donnerait pour un import initial.

Par défaut le modifier serait "add" pour ajouter un rôle.

email key, first_name, last_name, _role_name
jo.jo@triffouilly.fr,Jo,Jo,Agent

pour un import d'ajout de rôle, on a juste besoin de la clé et des rôles :

email key,_role_name
jo.jo@triffouilly.fr,Agent
jo.jo@triffouilly.fr,"Administrateur fonctionnel" 
toto@triffouilly.fr,Agent

pour un import de suppression de rôle, idem on a juste besoin de la clé et des rôles, mais on ajoutera le modifier "delete"

email key,_role_name delete
jo.jo@triffouilly.fr,"Administrateur fonctionnel" 

pour un écrasement on mettra "clear", on est sûr ensuite que les utilisateurs visés n'ont plus que ces rôles là :

email key,_role_name clear
jo.jo@triffouilly.fr,Agent
jo.jo@triffouilly.fr,"Administrateur fonctionnel" 
toto@triffouilly.fr,Agent

Des commentaires ?

#4

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

  • Version cible mis à ticket facile
#5

Mis à jour par Valentin Deniaud il y a plus de 4 ans

  • Assigné à mis à Valentin Deniaud
#6

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

Je note que le ticket est toujours en attente de commentaires des gens concernés par le ticket, en l’occurrence Marie et Thomas.

#7

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Qui ne dit mot consent !

Le seul point problématique du patch est le contournement des contraintes d'unicité, qui feraient normalement échouer l'ajout multiple. Si la solution que j'ai choisie est OK, il reste juste à faire la doc dans l'interface, et afficher d'une jolie couleur les lignes dupliquées pour ajout de rôle, facile avec le nouveau flag process_role ajouté sur ces lignes.

#8

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

La façon dont est implémenté "role clear" ne va pas fonctionner avec plusieurs ligne, il faut un clear par user par import, là le clear est fait sur chaque ligne.

Il faudrait déterminer le comportement à adopter si on a des colonnes marquées update avec des ajouts de rôles sur plusieurs lignes, je serai pour l'interdire i.e. on applique quand même la contrainte d'unicité si on a autre chose qu'un ajout de rôle, ou alors on demande à ce que les colonnes soient vides; il faudrait des tests correspondants (plusieurs utilisateurs, plusieurs lignes).

#10

Mis à jour par Valentin Deniaud il y a plus de 4 ans

comportement à adopter si on a des colonnes marquées update avec des ajouts de rôles sur plusieurs lignes
[...]
je serai pour l'interdire

Ce qui obligerait à créer deux fichiers si on a besoin de créer des utilisateurs avec plusieurs rôles. Il y a aussi potentiellement un obstacle technique, qui est qu'on découvrirait le problème au deuxième ajout de rôle pour un utilisateur, donc au final l'import sortirait des erreurs en ayant été à moitié exécuté.
À l'inverse, je trouve tout à fait cohérent de permettre des duplications de lignes quelque soit les colonnes (si une colonne d'ajout de rôle est présente) en marquant bien dans la doc « à part l'ajout de rôle, les valeurs des autres attributs seront ignorées dans les lignes supplémentaires pour un même utilisateur ». Ça peut être rendu clair dans le rendu avec les couleurs, en plus.
La raison c'est aussi que mon mode opératoire pour créer un tel fichier, mettons importer un utilisateur, ses attributs et deux rôles, ça serait d'écrire une première ligne avec tous les attributs et un premier rôle, et puis Vyp et je modifie juste la colonne rôle dans la ligne que je viens de dupliquer grâce au copain vim (et j'imagine que sous excel un agent procéderait pareil).
En fait j'ai peut-être simplement pas compris de quoi on voudrait se protéger avec cette interdiction ?

#11

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Voici ce que ça donne, sans interdiction pour le moment. J'ai réparé le clear + ajouté le test correspondant, et puis j'ai amélioré pas mal de trucs.
Screenshot en bonus pour appuyer que les lignes d'ajout multiple sont intelligibles.

#12

Mis à jour par Valentin Deniaud il y a plus de 4 ans

  • Fichier 0002-csv_import-allow-adding-roles-35773.patch supprimé
#13

Mis à jour par Valentin Deniaud il y a plus de 4 ans

(erreur d'indentation qui mettait le boxon)

#14

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Juste des modifs de style pour rendre le diff de #35774 plus sympa.

#15

Mis à jour par Valentin Deniaud il y a plus de 4 ans

  • Bloqué par Bug #36832: import csv : certaines erreurs ne sont pas affichées ajouté
#16

Mis à jour par Valentin Deniaud il y a plus de 4 ans

#17

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

  • Statut changé de Solution proposée à Solution validée
#18

Mis à jour par Valentin Deniaud il y a plus de 4 ans

J'ai ajouté le paragraphe de doc qui va bien et les traductions, je sais pas si il y a besoin de relecture mais here it goes.

#19

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

  • Statut changé de Solution proposée à En cours

Tes traductions change le chemin de tous les fichiers, il faut les faire depuis la racine du projet, sinon c'est nickel.

#20

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Oups, je me disais bien qu'il avait l'air malade ce diff.

#21

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

  • Statut changé de Solution proposée à Solution validée

Gogogo.

#22

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

Gogogo

(vendredi)

#23

Mis à jour par Valentin Deniaud il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7f6385853211c6accfc296540756b9f094add8de
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Mon Oct 21 17:34:03 2019 +0200

    update translations (#35773)

commit f12353d81cc07b51adb7579b853b2568e8c7bb70
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Oct 9 15:29:24 2019 +0200

    csv_import: allow adding roles (#35773)

commit 64157da70c5f18c133f71c3245d204d33f0e7cf0
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Mon Oct 14 15:42:16 2019 +0200

    csv_import: make sure has_errors is toggled (#35773)

#24

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

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF