GeoNature icon indicating copy to clipboard operation
GeoNature copied to clipboard

Point avancement: permissions, floutage observations et demandes d'accès

Open jpm-cbna opened this issue 3 years ago • 8 comments

Ce ticket vise à résumer le travail effectué sur les permissions, le floutage des observations et les demandes d'accès.

Travail envisagé à l'origine et état des développements en juin 2021:

  • le ticket #770 indiquent ce que nous avions envisagé comme travail en novembre 2019. C'est à quelques détails prés ce qui a été implémenté dans les branches feat/sinp-paca et feat/sinp-aura. Une des différences notable et qu'il n'y a pas eu de modification du schema gn_synthese par exemple.
  • le ticket #1062 permet de suivre les différentes modifications testées et le commentaire du 8 juin 2021 indique ce qui au final a été mis en place dans les branches feat/sinp-paca et feat/sinp-aura.
  • Au niveau de l'interface graphique:
    • l'accueil du module "Admin" a été revue pour avoir une ergonomie proche des autres modules avec des panneaux permettant l'accès aux "sous-modules".
    • le module de gestion des permissions a été entièrement revu et intégré à GeoNature.
    • un formulaire de demande d'accès aux données privées et sensibles est accessible depuis le profile de l'utilisateur.
    • une interface de gestion des demandes d'accès accessible depuis le module "Admin" est disponible.

Travail restant à réaliser avant fusion dans la branche "develop" :

  • Plutôt que d'utiliser 2 "objets" (table t_object) et un filtre "Precision", il serait plus simple d'utiliser simplement 2 filtres ("sensitivity" et "difussion_level").
  • Il faudrait par défaut même si le paramtère de config "ENABLE_DATA_BLURRING" vaut "true" ne rien afficher dans la Synthese tant qu'aucune permission n'a été définie sur les observations du module Synthese avec des filtres "sensitivity" et "difussion_level".
  • Si le floutage est activé et qu'aucune permission avec les filtres "sensitivity" et "difussion_level" n'a été explicitement définie pour l'utilisateur connecté, un message d'information devrait s'afficher pour signaler qu'il est nécessaire de définir une permission avec ces filtres.
  • Concernant le filtre "sensitivity" s'il vaut "1" (=true), cela signifie que l'on ne floute pas les observations possédant un niveaude sensibilité et s'il vaut "0" (=false) que l'on floute les observations.
  • Concernant le filtre "difussion_level" s'il vaut "1" (=true), cela signifie que l'on ne floute pas les observations et s'il vaut "0" (=false) que l'on floute les observations.
  • La valeur "1" correspondant à "ne pas flouter" permet de maintenir la logique de prendre la valeur max d'une permission si plusieurs valeurs distinctes sont disponibles pour un utilisateur (héritage de plusieurs groupes). Cela va aussi dans le sens de ne pas flouter par défaut.
  • Au niveau de la requête de floutage des observations, il faudrait idéalement récupérer la valeur de floutage la plus contraignante entre "sensibilité" et "niveau de diffusion". S'il s'avère difficile de modifier la requête dans ce sens (problème de performance), il est envisageable d'utiliser un paramètre de config permettant qui de la sensibilité ou du niveau de diffusion doit être prioritaire sur l'autre.

Point à éclaircir avant d'entamer le travail restant:

  • Comme le signale @camillemonchicourt dans le ticket #1062 avec son commentaire du 8 juin, doit-on s'appuyer uniquement sur le champ "diffusion_level" dont la valeur doit correspondre à celle du champ "sensitivity" éventuellement surchargée ?
  • Concernant la remarque du 2 novembre 2020 de @jpanijel dans le ticket #1093, doit-on prévoir un paramètre supplémentaire indiquant ou pas la prise en compte du niveau de diffusion ? La notion de "niveau de diffusion" étant aujourd'hui toujours nécessaire dans les SINP régionaux (vis à vis des Chartes).
  • Il serait nécessaire d'apporter des précisions sur les valeurs des nomenclatures:
    • valeur "1" de la sensibilité
    • valeur "0" du niveau de diffusion
    • dans l'optique d'utiliser des mailles (=performance) pour flouter les observations. À quel type de mailles pourrions nous faire correspondre les niveaux "commune" et "département".

jpm-cbna avatar Jun 22 '21 09:06 jpm-cbna

Retours SINP :

  • Niveau de diffusion et Niveau de sensibilité sont 2 infos indépendantes et complémentaires. Il faut prendre le valeur la plus haute des 2 pour déterminer le niveau de diffusion d'une observation.
  • A voir au niveau de GeoNature car quand on a implémenté les calculs de sensibilité dans la version 2.5.0, on a calculé le champs "niveau de diffusion" automatiquement à partir de la valeur calculée de sensibilité, et un trigger fait cela en continu. Ce n'est pas souhaitable à priori.
  • A terme on ne gardera que le niveau de sensibilité

De mon côté :

  • Pour moi si on active le floutage, il ne faut flouter que les données qui ont un niveau de sensibilité et/ou un niveau de diffusion différent de "précis". Sans avoir à définir les droits de précision

camillemonchicourt avatar Jul 01 '21 14:07 camillemonchicourt

  • Pour moi si on active le floutage, il ne faut flouter que les données qui ont un niveau de sensibilité et/ou un niveau de diffusion différent de "précis". Sans avoir à définir les droits de précision

C'est bien le fonctionnement actuel. Des permission explicites concernant le "niveau de diffusion" et/ou de "sensibilité" ne sont pas obligatoires pour déclencher l'affichage du floutages des observations "privées" et "sensibles" dans la Synthèse (si le paramètre ENABLE_DATA_BLURRING vaut true dans le fichier de config de GeoNature).

jpm-cbna avatar Jul 01 '21 14:07 jpm-cbna

Il serait nécessaire d'apporter des précisions sur les valeurs des nomenclatures:

  • valeur "1" de la sensibilité
  • valeur "0" du niveau de diffusion
  • dans l'optique d'utiliser des mailles (=performance) pour flouter les observations. À quel type de mailles pourrions nous faire correspondre les niveaux "commune" et "département".

Pour la "sensibilité", la valeur "1" correspond à la commune. Pour le "niveau de diffusion", la valeur "0" correspond à (?) Il serait préférable de flouter de la même manière à tous les niveaux régional et national... Il faut voir si en modifiant la synthèse pour ne retourner qu'une seule fois les géométries, le floutage à la commune et au département fonctionne.

jpm-cbna avatar Jul 01 '21 14:07 jpm-cbna

Il faudra possiblement revoir ou améliorer ce qui a été fait dans la 2.6.0 (https://github.com/PnX-SI/GeoNature/releases/tag/2.6.0).

Voir les commentaires sur les 2 tickets concernés par ce qui a été fait dans cette version :

  • https://github.com/PnX-SI/GeoNature/issues/413#issuecomment-773653941
  • https://github.com/PnX-SI/GeoNature/issues/871#issuecomment-773439403

Notamment le fait qu'un trigger (et le script d'update fourni avec la 2.6.0) calcule automatiquement le niveau de diffusion à partir du niveau de sensibilité. Alors qu'on a vu ici que c'était plutôt 2 notions différentes et indépendantes.

camillemonchicourt avatar Jul 12 '21 09:07 camillemonchicourt

Dans la version 2.9.2, les niveaux de sensibilité et de diffusion ont été décorrélés.

camillemonchicourt avatar Feb 15 '22 17:02 camillemonchicourt

C'est bien le fonctionnement actuel. Des permission explicites concernant le "niveau de diffusion" et/ou de "sensibilité" ne sont pas obligatoires pour déclencher l'affichage du floutages des observations "privées" et "sensibles" dans la Synthèse (si le paramètre ENABLE_DATA_BLURRING vaut true dans le fichier de config de GeoNature).

Je ressorts sur ce message pour une question :

  • est ce que cette fonctionnalité et paramétrage a été implémenté ? Je ne vois nulle part d'informations sur le paramètre ENABLE_DATA_BLURRING. Si oui, y a t il de la documentation quelque part ? et si non, y' a t il une date approximative d'implémentation de cette fonctionnalité ?

Merci !

JeromeMaruejouls avatar Mar 22 '22 13:03 JeromeMaruejouls

Le floutage des données sensibles n'a pas encore été intégré dans la branche principale de GeoNature. C'est un sujet complexe conceptuellement, techniquement mais aussi a des conséquences en terme de performances, et il est pour le moment seulement disponible dans des branches à part (data-blurring).

camillemonchicourt avatar Mar 22 '22 15:03 camillemonchicourt

Merci pour ces infos. C'est bien ce que j'avais cru comprendre mais j'ai eu un doute en lisant ce message

JeromeMaruejouls avatar Mar 22 '22 17:03 JeromeMaruejouls

Sur la base de ce travail, la structuration des permissions a été refondu dans la version 2.13.0 pour les optimiser, clarifier, simplifier, supprimer l'héritage et permettre de gérer d'autre type de filtres que le scope (portée / appartenance), comme la sensibilité.

Dans cette version 2.13.0, il est possible de donner accès ou non aux données sensibles à des groupes ou utilisateurs. Dans la version suivante, il sera possible de les flouter (avec des performances dégradées)

camillemonchicourt avatar Aug 23 '23 20:08 camillemonchicourt

Le floutage des données sensibles intégré dans la version 2.14.0. Voir https://github.com/PnX-SI/GeoNature/issues/2558. L'outil de demandes de permissions n'a pas été intégré actuellement et est discuté sur https://github.com/PnX-SI/GeoNature/issues/1062

camillemonchicourt avatar Feb 28 '24 20:02 camillemonchicourt