Couche filtrée par utilisateur - Définir certaines entités visibles/éditables ou non pour certains utilisateurs
Principe
Le filtrage des entités présenté permet de filtrer les données affichées sur la carte en fonction de l’utilisateur connecté. Il est possible de filtrer uniquement les couches vectorielles car Lizmap utilise une colonne dans la table attributaire.
Le filtrage utilise actuellement l’ID du groupe d’utilisateurs connectés. Il est actif pour toutes les requêtes au serveur QGIS, et donc concerne :
- les images des couches vectorielles affichées sur la carte 
- les popups. Lire Popup 
- les listes de la fonction Localiser par couche. Voir Localiser par couche — L’outil de localisation 
- listes déroulantes des Formes d’édition de la Relation de valeur. Voir Édition - Éditer une couche à partir de l’interface web 
- l’affichage de la table des attributs, etc. 
Il y a deux sortes de filtrage :
- sur les attributs 
- sur une relation spatiale 
Filtrage par relation spatiale
Principe
Dans ce panneau, vous pouvez :
- configurer une couche polygonale comme une couche filtrante 
- configurer des couches qui doivent être filtrées par la couche filtrante 
 
Pré-requis
Le plugin Lizmap dans QGIS Server doit être installé avec au moins le plugin QGIS Lizmap 3.6. Sinon, le filtre ne fonctionnera pas et toutes les données seront visibles. Voir Extension Lizmap QGIS Serveur.
Configurer l’outil
 
- Choisir la couche polygonale à utiliser pour filtrer 
- Choisissez le champ de cette couche qui contient les groupes ou les utilisateurs de Lizmap, séparés par une virgule. 
- Choisissez entre Utilisateurs ou Groupes en fonction du contenu de votre champ précédent. 
- Pour ajouter une couche filtrée à cet outil : - Cliquer sur le bouton - . 
- Choisir la couche qu’il faut filtrer 
- Choisir la clé primaire de la couche 
- Choisir si le filtrage s’effectue sur l’affichage et l’édition ou alors seulement sur l’édition 
- Choisir la relation spatiale soit intersection ou contient 
 
- Pour éditer une couche dans la table, sélectionner la et cliquer sur le bouton - ou alors double-cliquer sur la ligne. 
- Pour supprimer une couche de la table, cliquez sur celle-ci puis sur le bouton - . 
Pour votre information, les performances sont meilleures avec des couches PostgreSQL : soit filtrante ou filtrée ou alors même les deux.
Filtrage par attribut
Exemple
Un tutoriel vidéo est disponible sur Vimeo.
Configurer l’outil
Pour utiliser l’outil de filtrage des données dans Lizmap Web Client, il faut :
- avoir accès à l’interface d’administration de Lizmap Web Client 
Voici le détail des étapes pour configurer cette fonctionnalité :
Avertissement
Dans l’administration de Lizmap Web Client, dans les propriétés du répertoire, assurez-vous que anonymous et d’autres groupes pertinents ne sont pas cochés pour Toujours voir les données de couches, même si filtrées par login. Voir Définir les droits pour chaque groupe.
- Vérifiez l’ID de groupe ou l’ID utilisateur dans l’interface d’administration : - Pour connaître l’ID du groupe, vous devez vous rendre dans l’interface d’administration : L’ID apparaît entre parenthèses après le nom de chaque groupe (sous le titre Groupes de nouveaux utilisateurs) 
- Ou pour connaître l’identifiant de l’utilisateur, il suffit d’utiliser son login. 
 
- Pour toutes les couches vectorielles dont on veut filtrer les données, il suffit d’ajouter une colonne de texte qui contiendra l’ID de chaque ligne qui a le droit d’afficher cette caractéristique. - Remplir cette colonne pour chaque ligne de la table attributaire avec l’ID (en utilisant la calculatrice, par exemple). 
- Il est possible de définir - allcomme valeur pour certaines entités pour désactiver le filtre : Tous les utilisateurs verront les données de ces entités.
- Si la valeur contenue dans cette colonne pour une ligne ne correspond pas à un des groupes d’utilisateurs, alors la donnée ne sera affichée pour aucun utilisateur. 
 
 
- Ajoutez la couche dans le panneau Filtrer les données par utilisateur : - Cliquer sur le bouton - . 
- Sélectionnez la couche dans la liste déroulante 
- Sélectionnez la champ avec l’ID 
- Choisissez entre Utilisateurs ou Groupes en fonction du contenu de votre champ précédent. 
 
- Pour éditer une couche dans la table, sélectionner la et cliquer sur le bouton - ou alors double-cliquer sur la ligne. 
- Pour supprimer une couche de la table, cliquez sur celle-ci puis sur le bouton - . 
Avertissement
Désactivez le cache client et serveur pour toutes les couches filtrées. Sans cela, les données affichées ne seront pas mises à jour entre chaque connexion ou déconnexion de l’utilisateur !
Édition
Si vous avez activé l’édition (voir Édition - Éditer une couche à partir de l’interface web) sur la couche filtrée, le champ contenant l’ID sera éditable avec :
- soit une liste déroulante pour un non administrateur avec soit son propre login ou - all
- ou un éditeur de texte pour écrire une valeur lors d’un utilisateur admin 
