Project

General

Profile

Development #35773

import csv, ajout d'un rôle

Added by Marie Kuntz about 5 years ago. Updated almost 5 years ago.

Status:
Fermé
Priority:
Normal
Category:
-
Start date:
03 September 2019
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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

Files

0001-csv_import-allow-adding-roles-35773.patch (11.4 KB) 0001-csv_import-allow-adding-roles-35773.patch Valentin Deniaud, 09 October 2019 04:28 PM
0001-csv_import-make-sure-has_errors-is-toggled-35773.patch (942 Bytes) 0001-csv_import-make-sure-has_errors-is-toggled-35773.patch Valentin Deniaud, 14 October 2019 04:20 PM
1571062365.png (72.3 KB) 1571062365.png Valentin Deniaud, 14 October 2019 04:20 PM
0002-csv_import-allow-adding-roles-35773.patch (12.4 KB) 0002-csv_import-allow-adding-roles-35773.patch Valentin Deniaud, 14 October 2019 05:07 PM
0002-csv_import-allow-adding-roles-35773.patch (12.5 KB) 0002-csv_import-allow-adding-roles-35773.patch Valentin Deniaud, 16 October 2019 12:25 PM
0002-csv_import-allow-adding-roles-35773.patch (15.1 KB) 0002-csv_import-allow-adding-roles-35773.patch Valentin Deniaud, 21 October 2019 05:36 PM
0003-update-translations-35773.patch (133 KB) 0003-update-translations-35773.patch Valentin Deniaud, 21 October 2019 05:36 PM
0003-update-translations-35773.patch (20.6 KB) 0003-update-translations-35773.patch Valentin Deniaud, 22 October 2019 11:30 AM

Related issues

Blocked by Authentic 2 - Bug #36832: import csv : certaines erreurs ne sont pas affichéesFermé10 October 2019

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

Actions

Associated revisions

Revision 64157da7 (diff)
Added by Valentin Deniaud almost 5 years ago

csv_import: make sure has_errors is toggled (#35773)

Revision f12353d8 (diff)
Added by Valentin Deniaud almost 5 years ago

csv_import: allow adding roles (#35773)

Revision 7f638585 (diff)
Added by Valentin Deniaud almost 5 years ago

update translations (#35773)

History

#1

Updated by Thomas Noël about 5 years ago

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

Updated by Marie Kuntz about 5 years ago

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

Updated by Benjamin Dauvergne about 5 years ago

  • Category set to 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

Updated by Benjamin Dauvergne about 5 years ago

  • Target version set to ticket facile
#5

Updated by Valentin Deniaud almost 5 years ago

  • Assignee set to Valentin Deniaud
#6

Updated by Benjamin Dauvergne almost 5 years ago

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

Updated by Valentin Deniaud almost 5 years ago

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

Updated by Benjamin Dauvergne almost 5 years ago

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

Updated by Valentin Deniaud almost 5 years ago

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

Updated by Valentin Deniaud almost 5 years ago

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

Updated by Valentin Deniaud almost 5 years ago

  • File deleted (0002-csv_import-allow-adding-roles-35773.patch)
#14

Updated by Valentin Deniaud almost 5 years ago

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

#15

Updated by Valentin Deniaud almost 5 years ago

  • Blocked by Bug #36832: import csv : certaines erreurs ne sont pas affichées added
#16

Updated by Valentin Deniaud almost 5 years ago

#17

Updated by Benjamin Dauvergne almost 5 years ago

  • Status changed from Solution proposée to Solution validée
#18

Updated by Valentin Deniaud almost 5 years ago

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

Updated by Benjamin Dauvergne almost 5 years ago

  • Status changed from Solution proposée to 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

Updated by Valentin Deniaud almost 5 years ago

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

#21

Updated by Benjamin Dauvergne almost 5 years ago

  • Status changed from Solution proposée to Solution validée

Gogogo.

#22

Updated by Frédéric Péters almost 5 years ago

Gogogo

(vendredi)

#23

Updated by Valentin Deniaud almost 5 years ago

  • Status changed from Solution validée to 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

Updated by Frédéric Péters almost 5 years ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF