Development #21991
Gestion d'accès fine à la fabrique des formulaires
0%
Description
Pour le moment avoir accès signifie permettre la création/modification/suppression de tous les formulaires, sur des collectivités importantes avec plusieurs équipes il pourrait être souhaité de permettre des actions uniquement sur certaines catégories de formulaire.
Une évolution envisagée et de limiter ça catégorie par catégorie pour les formulaires. (#21742, aussi souhaité à Liège (imio/19789))
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a environ 6 ans
Techniquement dans le code j'imaginerais bien en première approche un formdef.can_delete/modify(user), qui pourra être calculé selon la catégorie dans un premier temps, mais plus tard selon d'autres principes (idée de publik light avec des formulaires livrés "hardcodés")
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Lié à Development #55945: Catégories pour les workflows ajouté
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-general-add-category-based-management-access-forms-c.patch 0001-general-add-category-based-management-access-forms-c.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
C'est l'ajout d'un attribut management_roles aux catégories; c'est surtout sa prise en compte en mille endroits,
- De manière globale dans l'accès aux fabriques, découpe du is_accessible() du RootDirectory de wcs/backoffice/root.py pour avoir un enchainement qui appalle le is_accessible() des répertoires (ex: forms), avant de passer la main à un is_global_accessible qui s'occupe des permissions posées dans la matrice d'accès).
- Ce is_global_accessible est ensuite exploité de manière répétée pour limiter l'accès à différentes "sous-zones", comme l'accès à la gestion des blocs de champs ou des sources de données.
- Pour les workflows il y a aussi à laisser un accès aux workflows par défaut, bien que formellement pas dans une catégorie marquée comme accessible à l'agent, et de ces workflows par défaut il doit être possible de faire "dupliquer", ce qui créait avant un workflow sans catégorie, mais si on fait ça l'agent n'y aurait pas accès, donc modification ici pour dans cette situation présenter une popup où choisir la catégorie.
- Je me suis aussi posé la question pour l'accès à l'/inspect d'un formdata (ou carddata), j'ai considéré ici aussi que c'était quelque chose de privilégié, uniquement accessible aux "vrais" admins.
Mis à jour par Thomas Noël il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Je me suis aussi posé la question pour l'accès à l'/inspect d'un formdata (ou carddata), j'ai considéré ici aussi que c'était quelque chose de privilégié, uniquement accessible aux "vrais" admins.
Je n'ai pas compris ce que tu veux dire par "vrais" admins. Dans can_go_in_inspector j'ai l'impression que tu vérifies bien qu'on est admin de la catégorie qui contient le formulaire ou le workflow, non ? (Peut-être que tu voulais parler des accès aux blocs et aux sources de données ?)
Je me dis quand dans matrice d'accès on pourrait écrire "Tous les formulaires" au lieu de juste "Formulaires" ; voire même "Tous les formulaires + blocs de champs". Mais ça va être un peu long et ça va pas tenir, tant pis, ça sera pour un autre ticket quand on voudra clarifier cette matrice.
Rien de plus à dire, ça me semble bien faire le tour. J'ai testé "en vrai" et ça tourne bien. Malgré mon interrogation sur l'accès à "inpect" plus haut, je valide.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
Dans can_go_in_inspector j'ai l'impression que tu vérifies bien qu'on est admin de la catégorie qui contient le formulaire ou le workflow, non ?
Ah oui, je me dis qu'à un moment je ne le faisais pas, ou autre chose, etc. bref peu importe c'est très bien de l'avoir là.
commit b4ee66cbcfeeee74c74d8c0c72b17c47c8171671 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Aug 3 15:07:17 2021 +0200 general: add category-based management access (forms/cards/workflows) (#21991)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: add category-based management access (forms/cards/workflows) (#21991)