PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
100 stars 102 forks source link

Filtre des JDD par les acteurs des CA #2696

Open TheoLechemia opened 1 year ago

TheoLechemia commented 1 year ago

Les JDD accessibles (en lecture et en écriture) sont calculés à partir de la fonction filter_by_scope (https://github.com/PnX-SI/GeoNature/blob/master/backend/geonature/core/gn_meta/models.py#L262), qui vérifie les acteurs associés au JDD et également les acteurs définit au niveau du CA du JDD. Il a été remonté que les utilisateurs avait accès à "trop" de JDD à la saisie : en effet dès l'instant qu'un organisme est associé à un CA, alors l'utilisateur peut saisir dans tous les JDD associés (ce qui n'est pas toujours souhaitable). Est-ce qu'il faut conserver cet "héritage" des droits entre les CA et les JDD ?

jbrieuclp commented 1 year ago

Je l'avais déjà évoqué un moment, mais je persiste à penser qu'il est nécessaire de décorréler le droit d'accès spécifique à geonature des informations descriptives des métadonnées (les roles associés).

Il faudrait qu'au niveau des JDD (ou des CA) on puisse d'un côté décrire les acteurs et en parallèle à cette info pouvoir gérer les droits d'accès propre à l'appli.

Potentiellement 2 propositions en ce sens :

En tout cas en séparant la description des métadonnées et la gestion des droits d'accès geonature il devient possible d'ouvrir en lecture des JDD à des organismes ou personnes tierces qui ne jouent aucun rôle dans le JDD ou CA et il deviendrait possible de gérer l'accès en lecture écriture au cas par cas par JDD/CA

DonovanMaillard commented 1 year ago

Présenté de cette manière en interface ça ne me semble pas forcement optimal, mais en soit je serais plutôt d'avis à distinguer les acteurs des métadonnées et les permissions comme tu le proposes, plutôt que limiter le type de rôle comme évoqué par Théo dans l'autre ticket.

A voir pour que ça ne soit pas trop usine à gaz non plus... la logique "mon organisme", "moi","tout" perdrait alors peut-être de son sens, car les droits seraient plus logiques à donner par groupes d'utilisateurs que par organisme ...

camillemonchicourt commented 1 year ago

Ce qu'évoque @TheoLechemia est que depuis peu (la 2.12 à priori avec le travail de fond sur les permissions), la liste des JDD listés quand on fait une observation dans Occtax (ou Occhab je pense que c'est pareil), regarde les acteurs des JDD et des CA (et non plus seulement ceux des JDD) pour appliquer les portées. Ce n'était pas le cas avant la 2.12, donc en mettant à jour GeoNature, certains se sont retrouvés avec la possibilité d'associer des relevés à des JDD non souhaités.

Pour illustrer :

Désormais si un utilisateur a un CRUVED C de portée 2 dans Occtax, quand il va vouloir associer un JDD à un relevé, il verra les JDD :

C'est ça qui est nouveau et pas forcément souhaitable ni identifié.

DonovanMaillard commented 1 year ago

Oui en effet, pas souhaitable car justement la distinction CA/JDD pouvait être utilisée pour ça au niveau des droits...

camillemonchicourt commented 1 year ago

Pour le sujet plus global (à traiter ailleurs je pense), les permissions dans GeoNature sont complexes car on veut faire beaucoup de choses par rapport à ce qu'il se fait habituellement dans les outils, et car il y a des choses tordues dans notre domaine, comme la sensibilité, le floutage, les observateurs, etc...

Donc on ne se limite malheureusement pas, comme ailleurs, à définir des objets et dire qui peut les CRUD. On a des données, des JDD, des observateurs, des acteurs... Et on définit ça de manière croisée, à différents niveaux, avec parfois de l'héritage pour gérer des choses globalement, pas d'autres. 🤯

A mon avis, il ne faut pas encore compliqué ça en dupliquant et complexifiant la gestion des acteurs.

DonovanMaillard commented 1 year ago

Non non le but est pas de compliquer, à l'inverse. Je trouve ça bien assez compliqué voire trop, le but serait bien de chercher un fonctionnement plus simple et surtout plus clair pour tout le monde : admin et utilisateurs.

Le fonctionnement actuel fait qu'on doit des fois aller modifier les métadonnées ou les faire de manière hétérogène pour répondre à des besoins de permissions (rajouter une personne sur un JDD car il doit y avoir accès, alors que tous les autres utilisateurs ne sont pas mentionnés personnellement par exemple).

Le but serait de trouver une manière de décorréler métadonnées et permissions, qui sont deux notions différentes et pour lesquelles on peut en arriver à déformer les métadonnées dans certains cas... C'est pas un petit chantier....

camillemonchicourt commented 1 year ago

Oui dans la v2 de GeoNature on a voulu baser les organismes et les permissions associées en s'appuyant sur les JDD, car c'était très limité et lourd de gérer ça uniquement au niveau des observations elles-mêmes.

Cela a de nombreux avantages, mais aussi certaines contraintes.

Pour moi si on revoit ça (dans une V3 ?), alors il faudra simplifier et faire des choses plus classiques et basiques comme on trouve habituellement dans les outils.

eloisemtPNFor commented 11 months ago

Le fait que ce soit la structure actrice du CA qui prend le dessus sur les organismes acteurs des JDD n'aide pas non plus pour les exports depuis la synthèse.

Lorsque la restriction "Les données de mon organisme" est mise au niveau des droits d'exports et que l'utilisateur souhaite exporter des données d'un jdd de son organisme, et que l'organisme du CA est le sien l'utilisateur peut télécharger toutes les données (alors qu'il ne devrait pas pouvoir avoir accès aux données des autres structures).

jpanijel commented 11 months ago

Bonjour à tous, je me permets de donner la position de la plateforme nationale du SINP sur l'implémentation des permissions et de leur impact sur l'accès aux métadonnées et aux données. L'application des permissions depuis la V2.12 de GN, notamment l'héritage" des droits entre les CA et les JDD, nous paraît la solution la plus cohérente pour l'instant. Sur le plan juridique et moral, il nous paraît indispensable que les acteurs d'un CA (maître d'ouvrage, financeur, maitre d’œuvre...) puissent accéder aux données des JDD des CA qu'ils portent et qu'ils puissent exercer leurs responsabilités de contrôle et de supervision. Sur le plan fonctionnel, l'effet de bord pour les utilisateurs rattachés aux organismes en question, bien que gênant, nous semble passer en second plan.

camillemonchicourt commented 4 months ago

Le sujet avait en fait été indiqué ici : https://github.com/PnX-SI/GeoNature/issues/2158. Et daterait de plus longtemps (2.9).