Development #35773
import csv, ajout d'un rôle
0%
Description
- 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
Historique
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 ?
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.
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 ?
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-csv_import-allow-adding-roles-35773.patch 0001-csv_import-allow-adding-roles-35773.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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.
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).
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 ?
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-csv_import-allow-adding-roles-35773.patch ajouté
- Fichier 0001-csv_import-make-sure-has_errors-is-toggled-35773.patch 0001-csv_import-make-sure-has_errors-is-toggled-35773.patch ajouté
- Fichier 1571062365.png 1571062365.png ajouté
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier
0002-csv_import-allow-adding-roles-35773.patchsupprimé
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-csv_import-allow-adding-roles-35773.patch 0002-csv_import-allow-adding-roles-35773.patch ajouté
(erreur d'indentation qui mettait le boxon)
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-csv_import-allow-adding-roles-35773.patch 0002-csv_import-allow-adding-roles-35773.patch ajouté
Juste des modifs de style pour rendre le diff de #35774 plus sympa.
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é
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Bloque Development #35774: import csv, gestion du mot de passe ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0003-update-translations-35773.patch 0003-update-translations-35773.patch ajouté
- Fichier 0002-csv_import-allow-adding-roles-35773.patch 0002-csv_import-allow-adding-roles-35773.patch ajouté
- Statut changé de Solution validée à Solution proposée
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.
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0003-update-translations-35773.patch 0003-update-translations-35773.patch ajouté
- Statut changé de En cours à Solution proposée
Oups, je me disais bien qu'il avait l'air malade ce diff.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Gogogo.
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)
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
csv_import: make sure has_errors is toggled (#35773)