Projet

Général

Profil

Development #21991

Gestion d'accès fine à la fabrique des formulaires

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
20 février 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à w.c.s. - Development #55945: Catégories pour les workflowsFermé03 août 2021

Actions

Révisions associées

Révision b4ee66cb (diff)
Ajouté par Frédéric Péters il y a plus de 2 ans

general: add category-based management access (forms/cards/workflows) (#21991)

Historique

#1

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")

#2

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

  • Planning mis à Non
#4

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

  • Assigné à mis à Frédéric Péters
#5

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

#6

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

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.
#7

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.

#8

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)
#9

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

Formats disponibles : Atom PDF