From f2cbfd04c179d38929ca052e0944b2e0088e9894 Mon Sep 17 00:00:00 2001
From: Gaetan Vogel <gaetan.vogel@veremes.com>
Date: Tue, 18 Jun 2024 14:45:07 +0200
Subject: [PATCH] Doc flux + image

---
 doc/source/administrator/flux.md              |  47 ++++++++++++++++++
 doc/source/administrator/index.rst            |   1 +
 .../images/administrator/flux/publication.png | Bin 0 -> 11328 bytes
 3 files changed, 48 insertions(+)
 create mode 100644 doc/source/administrator/flux.md
 create mode 100644 doc/source/images/administrator/flux/publication.png

diff --git a/doc/source/administrator/flux.md b/doc/source/administrator/flux.md
new file mode 100644
index 00000000..58487358
--- /dev/null
+++ b/doc/source/administrator/flux.md
@@ -0,0 +1,47 @@
+# Comment publier un flux WMS ou WFS
+
+Les flux WMS ou WFS permettent de rendre vos données cartographiques disponibles via un flux qui peut être utilisé dans différents logiciels comme QGIS.
+
+## Création d'un flux
+
+Pour créer un flux dans vMap2, naviguez vers Flux et publications puis flux.
+
+Assurez-vous de choisir un système de coordonnées identique à celui utilisé pour vos publications afin d'éviter des problèmes de re-projection.
+
+Après la création du flux, il est nécessaire de l'associer à des publications qui contiendront les données disponibles à travers ce flux.
+
+Après avoir ajouté vos publications, vous pouvez générer votre flux, ce qui produira une URL.
+
+***Notes:** _Si vous ajoutez une publication à un flux déjà généré, il est nécessaire de régénérer le flux pour que la nouvelle publication soit incluse._
+
+## Création d'une publication 
+
+La création d'une publication suit le même processus que la création d'une couche.
+
+Accédez à 'Sources de données' -> 'Postgresql', puis sélectionnez la table ou la vue qui servira de source pour votre publication.
+
+De manière similaire à la création d'une couche, vous procéderez ensuite à la création de la publication.
+
+![publicactions](../images/administrator/flux/publication.png)
+
+Comme pour une couche, il est possible de définir la symbologie de votre publication en éditant sa symbologie.
+
+Enfin, vous pouvez accéder à toutes les publications déjà créées en naviguant dans le menu 'Flux et publications' -> 'Publications'.
+
+## Restreindre l'accès aux données du flux
+
+Comme décrit dans la section sur la gestion des droits utilisateurs, la visibilité des données dépend des droits accordés aux utilisateurs.
+
+Le même principe s'applique aux flux. Si l'utilisateur qui génère le flux possède les droits nécessaires pour accéder aux données des tables ou vues source des publications, il pourra alors visualiser les données cartographiques sans problème à travers le flux.
+
+Considérons deux scénarios distincts impliquant deux utilisateurs : Utilisateur_A et Utilisateur_B.
+
+Dans le premier scénario, l'Utilisateur_A crée une publication mais ne dispose pas des droits suffisants pour lire les données de la table ou vue qui est la source de sa publication. Si l'Utilisateur_B, qui utilise cette publication dans son flux, a les droits nécessaires pour accéder aux données de la source, alors les données cartographiques seront visibles dans son flux malgré les restrictions de l'Utilisateur_A.
+
+Dans le deuxième scénario, l'Utilisateur_A crée une publication et dispose des droits nécessaires pour lire les données de la source. Cependant, si l'Utilisateur_B, qui ajoute cette publication à son flux, ne possède pas les droits sur la source de la publication, il ne pourra pas visualiser les données cartographiques dans son flux, malgré les droits de l'Utilisateur_A.
+
+En résumé, la capacité à visualiser les données cartographiques dans un flux dépend directement des droits de l'utilisateur qui génère le flux, indépendamment des droits de celui qui a créé la publication originale.
+
+***Bonus** : Lorsque vous générez un flux, un fichier mapfile est créé et peut être modifié directement sur le serveur de vMap. Toutefois, lors de la régénération du flux, ce fichier mapfile sera remplacé par une nouvelle version.
+
+Pour accéder à ce mapfile, rendez-vous dans le dossier d'installation de vMap, puis suivez le chemin : vas/var/mapserver/wms_public.
\ No newline at end of file
diff --git a/doc/source/administrator/index.rst b/doc/source/administrator/index.rst
index 441baea2..9f290440 100644
--- a/doc/source/administrator/index.rst
+++ b/doc/source/administrator/index.rst
@@ -16,3 +16,4 @@ Il est conseillé aux administrateurs de consulter en premier la `Documentation
    api/api.rst
    journaux.md
    cadastre/index.rst
+   flux.md
diff --git a/doc/source/images/administrator/flux/publication.png b/doc/source/images/administrator/flux/publication.png
new file mode 100644
index 0000000000000000000000000000000000000000..aae3921de65d9806417cedb8a0e791be37caea66
GIT binary patch
literal 11328
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
BMC<?n

literal 0
HcmV?d00001

-- 
GitLab