diff --git a/_install/dependencies.json b/_install/dependencies.json
index 4263cbdeb9d85310b9c5b5c60927bf3004ad7104..095325c0804af183b9cedddb8e844b1dd19216a8 100644
--- a/_install/dependencies.json
+++ b/_install/dependencies.json
@@ -29,7 +29,7 @@
     ],
     "default_description": "# Bienvenue dans vMap ! \n\nPlus d'information sur [http:\/\/www.veremes.com](http:\/\/www.veremes.com)",
     "default_theme": "6",
-    "branch": "master",
+    "branch": "next_version",
     "name": "vmap",
     "enable_custom_restrictions": false,
     "url": "git@gitlab.veremes.net:Development/vitis-2020/applications/vmap.git",
@@ -62,7 +62,7 @@
       "name": "module_vmap",
       "url": "git@gitlab.veremes.net:Development/vitis-2020/sources/module_vmap.git"
     }, {
-      "branch": "master",
+      "branch": "next_version",
       "name": "module_cadastre",
       "url": "git@gitlab.veremes.net:Development/vitis-2020/sources/module-cadastre-2020.git"
     }]
diff --git a/bin/mount_project.sh b/bin/mount_project.sh
index 827a027ddd63de17c1303167aee05500878ff04d..9aa9e88fa36888f0edada0f911651aa04ac1fd59 100755
--- a/bin/mount_project.sh
+++ b/bin/mount_project.sh
@@ -35,18 +35,28 @@ then
   echo "---- Mount module's assets folder ----"
   sudo mount --bind src/vitis/client client
   mkdir -p client/src/modules/vmap
-  sudo mount --bind src/module_vmap/module client/src/modules/vmap
+  # Mount les assets de vmap
+  for subfolder_vmap in "src/module_vmap/module"/*/; do
+    subfolder_vmap_name=$(basename "$subfolder_vmap")
+    # Vérifie si le dossier ne s'appelle pas "components"
+    if [ "$subfolder_vmap_name" != "components" ]; then
+        # Crée le dossier dans le dossier de destination
+        mkdir -p "client/src/modules/vmap/$subfolder_vmap_name"
+        sudo mount --bind "src/module_vmap/module/$subfolder_vmap_name" "client/src/modules/vmap/$subfolder_vmap_name"
+        echo "Dossier '$subfolder_vmap_name' monté dans 'client/src/modules/vmap'."
+    fi
+  done
   mkdir -p client/src/conf
   sudo mount --bind conf client/src/conf
 
-  # Motage des modules Angular
+  # Montage des modules Angular
   if [ -f conf/modules-components.ts ]; then
     cp -f conf/modules-components.ts src/vitis/client/src/app/modules/modules-components.ts
   else
     cp -f src/vitis/client/src/app/modules/modules-components.sample.ts src/vitis/client/src/app/modules/modules-components.ts
   fi
   if [ -d src/module_vmap/module/components ]; then
-    mkdir src/vitis/client/src/app/modules/vmap
+    mkdir -p src/vitis/client/src/app/modules/vmap
     sudo mount --bind src/module_vmap/module/components client/src/app/modules/vmap
   fi
 fi
diff --git a/doc/source/_static/css/custom.css b/doc/source/_static/css/custom.css
index ea94ab7d99b29c2e5b2a75efe0db67826b29b28d..97cd3922b8f3de7e73fae1f5e675abadd14ea8f9 100644
--- a/doc/source/_static/css/custom.css
+++ b/doc/source/_static/css/custom.css
@@ -43,3 +43,21 @@
     content : ''!important;
     visibility: hidden;
 }
+
+/** bouton dropdown amonition */
+button.toggle-button {
+  font-family: inherit;
+  font-size: 18px;
+  color: white;
+  font-weight: 700;
+  top: 2px !important;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  align-items: center;
+}
+
+svg.tb-icon {
+  margin-top: 0px;
+  padding: 0px;
+}
\ No newline at end of file
diff --git a/doc/source/_static/js/custom.js b/doc/source/_static/js/custom.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b955f4033386320886e010c59b7b83bf67bc2db
--- /dev/null
+++ b/doc/source/_static/js/custom.js
@@ -0,0 +1,26 @@
+document.addEventListener('DOMContentLoaded', () => {
+    // fonction pour ouvrir les liens externes dans un nouvel onglet
+    document.querySelectorAll('a.reference.external').forEach(function(link) {
+      link.target = '_blank';
+    });
+    // renplacement du data-toggle-hint pour que le texte des dropdowns soit en Français, sans toucher à la librairie
+    document.querySelectorAll('p.admonition-title > button.toggle-button.toggle-button-hidden').forEach((elem) => {
+      // il y a un bug lors de la première ouverture du dropdown, donc je simule une ouverture pour l'éviter
+      // un seul click : ouvert, deux clicks : fermé
+      elem.click();
+      // elem.click();
+      elem.setAttribute('data-toggle-hint', 'Cliquez pour dévoiller')
+    })
+  
+    // Permet de rajouter l'ouverture d'image dans un nouvel onglet au click, permet de voir l'image plus zoomée
+    const imgs = document.querySelectorAll("img");
+    for (const img of imgs) {
+        // Prepare link
+        const link = document.createElement("a");
+        link.href = img.src;
+        link.target = "_blank";
+        // Reparent img tag
+        img.replaceWith(link);
+        link.append(img);
+    }
+  });
\ No newline at end of file
diff --git a/doc/source/administrator/flux/flux.md b/doc/source/administrator/flux/flux.md
new file mode 100644
index 0000000000000000000000000000000000000000..8399d930b2be3a794da910af19d0bc5012596a85
--- /dev/null
+++ b/doc/source/administrator/flux/flux.md
@@ -0,0 +1,71 @@
+# Publication d'un jeu de données sous forme de flux (WMS, WFS)
+
+La publication d'un jeu de données sous forme de flux, permet à l'administrateur de rendre disponible la données à partir d'un URL. Publiée et disponible sur le web, la donnée peut ainsi être exploitée par l'intermédiaire de logiciels tiers (exemple : Qgis)
+
+L'application vMap permet de publier des données sous forme de flux WMS et WFS. La documentation suivante détaille les différentes étapes pour publier une données sous forme de flux depuis vMap.
+
+## Etapes nécessaires à la publication d'un jeu de données
+
+La publication d'un jeu de données sous forme de flux WMS ou WFS dans vMap demande de réaliser 3 étapes :  
+    1- La mise en place de publication  
+	2- La création d'un flux  
+	3- L'association des publications à un flux.
+	
+Ces trois étapes sont détaillées ci-dessous.
+
+```{Note}
+Les étapes 1 et 2 peuvent être réalisées dans le sens inverse.
+```
+
+
+## Création d'une publication 
+
+La création d'une publication suit le même processus que la création d'une couche.
+
+Depuis le mode `Sources de données` de l'application, accéder à la données à publier (table, vue, vue matérialisée) en se déplaçant dans l'arborescence `PostgreSQL` de l'arbre. Cliquer droit sur la roue crantée à droite de `Publication` et `Ajouter une publication Postgres`.
+
+![creation publication](../../images/administrator/flux/creation_publication.png)
+
+De la même manière que pour une couche, l'interface de vMap propose dans un premier temps définir certaines informations importantes de la publication (identifiant, champ géométrique, le système de coordonnées de la données source...), puis, une fois la publication créée, d'éditer sa symbologie depuis un studio entièrement en no-code.
+
+![symbologie publication](../../images/administrator/flux/symbologie_publication.png)
+
+
+Toutes les publications créées dans vMap peuvent être consultées et modifiées depuis le mode `Flux et publication` > `Publication` de l'application.
+
+## Création d'un flux
+
+Pour créer un flux dans vMap2, ajouter un nouveau flux depuis le mode `Flux et publication` > `flux` de l'application.
+
+A l'instar de la création d'une carte, l'application demande plusieurs paramètres importants : 
+- un nom
+- De définir si le flux généré est de type WMS ou WFS.
+
+Une fois le flux créé, il n'est pas encore possible de générer l'URL de ce dernier tant qu'aucune publication ne lui a été associé (cf point suivant). 
+
+## Association des publications à un flux.
+
+Une fois la création du flux réalisé, l'application permet à l'administrateur de lui associer des publications.  
+De la même manière comme pour une carte, vMap demande à l'administrateur de choisir quelles publications il souhaite rendre disponible dans son flux.
+
+Pour ce faire, se rendre dans la section `Publication`, `Ajouter une publication` et sélectionner les publications dans la liste des publications disponible.
+
+Lorsque la ou ou les premières publications sont ajoutées au flux, l'application permet de le générer (générer l'URL).  
+
+Une fois l'URL générée, l'application permet d'obtenir le GetCapabilities du flux ainsi que le lien complet de l'URL qui peut être utilisées dans différents logiciels.
+
+```{Note}
+L'ajout ou la suppression d'une publication d'un flux demande de relancer la génération du flux afin que le contenu de ce dernier soit actualisé.
+```
+
+## Accessibilité des données disponibles depuis un flux.
+
+Les données disponibles depuis les publications présentes dans un flux dépendent des droits de l'administrateur qui a généré le flux (cliqué sur le bouton `Générer le flux`). Cela signifie que bien qu'une publication soit présente dans un flux, si l'administrateur n'a pas les droits d'accès à la donnée, cette dernière ne sera pas disponible pour l'utilisateur final qui va l'utiliser.
+
+Explication : Considérons deux scénarii distincts impliquant deux utilisateurs : Utilisateur_A et Utilisateur_B.
+
+Scenario 1 : L'Utilisateur_A crée une publication mais ne dispose pas des droits suffisants pour lire les données de la table qui est la source de sa publication. L'utilisateur_B qui utilisera la publication (la couche) présente dans le flux ne verra aucune donnée.
+
+Scenario 2 : L'Utilisateur_A crée une publication et dispose de droits pour lire les données de la table qui est la source de sa publication. L'utilisateur_B qui utilisera la publication (la couche) présente dans le flux visualisera l'ensemble des données.
+
+En résumé, la capacité à visualiser les données cartographiques et attributaires d'une publication d'un flux dépend directement des droits de l'utilisateur qui génère le flux.
\ No newline at end of file
diff --git a/doc/source/administrator/impression/impressions.md b/doc/source/administrator/impression/impressions.md
new file mode 100644
index 0000000000000000000000000000000000000000..88089a4b442c8c9a739b85bdf0738fbff4c55ead
--- /dev/null
+++ b/doc/source/administrator/impression/impressions.md
@@ -0,0 +1,207 @@
+# Impressions
+
+Le mode `Impressions` est une fonctionnalité de vMap qui permet d'imprimer une carte pour en générer un document PDF.
+
+Couplées aux notions de paramètres et de styles, les impressions sont personnalisables autant par leur contenu que par leur rendu.
+
+Elles offrent à l'administrateur 4 possibilités de personnalisation : 
+
+- La mise en place de modèles : Pour concevoir et ajuster des modèles d'impression.
+- La mise en place de paramètres : Pour personnalisé le rendu final par des libellé propres à l'utilisateur
+- La mise en place de styles : Pour personnaliser le style de l'impression réalisée (logo, couleur...) en fonction de l'utilisateur qui est connecté
+- La mise en place d'échelles d'impression : Pour permettre de réaliser des impressions à des échelles précises
+
+![Mode d'impression](../../images/administrator/impressions/mode_impressions.png)
+
+## Configuration générale
+
+Avant toute chose, pour qu'un utilisateur ait la possibilité d'imprimer sa carte, il faut :
+- Qu'il en possède les droits  
+- Que l'administrateur ait ajouté le bouton d'impression sur la carte 
+
+#### 1- Donner les droits d'impression aux utilisateurs
+
+Pour qu'un utilisateur ait les droits d'impression, il faut que son compte soit associé à un groupe qui possède au moins un modèle d'impression (cf. [Documentationdesgroupes](../rights/group.md)) [Documentation des groupes](http://documentation.veremes.net/vmap2/administrator/rights/group.html).
+
+#### 2- Ajouter le bouton d'impression sur la carte
+
+La seconde condition pour qu'un utilisateur puisse réaliser une impression, c'est que l'administrateur ait ajouté le bouton (cf. image ci-dessous) sur la carte. Cette fonctionnalité est paramétrable carte par carte afin de permettre à l'administrateur d'adapter son application en fonction des besoins..
+
+![Icon outil d'impression](../../images/administrator/impressions/icon_outil_impression.png)
+_<center>Icône de l'impression à ajouter dans la barre latérales ou inférieures de la carte.</center>_
+
+
+Exemple : 
+
+![Outils de la carte](../../images/administrator/impressions/ajouter_outil_impression_dans_la_carte.png)
+
+
+## Modèles d'impression
+
+Les Modèles d'impression sont des templates utilisés pour obtenir le rendu principal de l'impression. Ils permettent de définir et ajuster la disposition, le contenu et le format des cartes imprimées en assurant une présentation cohérente et personnalisée selon les besoins spécifiques de l'utilisateur.
+
+Pour créer un modèle, cliquer sur `Ajouter` depuis le mode `Impressions` > ` Modèle d'impressions` et remplir l'ensemble des informations demandées par le formulaire (un nom, un format de page, une orientation, les groupes d'utilisateurs autorisés à utiliser ce modèle, ainsi qu'une définition HTML).
+
+Chaque modèle d'impression peut être personnalisé à partir de variable afin de récupérer les images de la carte, la légende, des informations sur l'utilisateur qui lance l'impression...
+
+Voici les différentes variable et balises utilisables dans les impressions : 
+
+### 1- Variables / balises correspondant aux images
+
+3 balises sont disponibles :
+
+- `map_image` : Image de la carte. Balise à intégrer dans un élément `HTML` de type `img`.
+- `map_overview` : Image dde l'overview (mini carte). Balise à intégrer dans un élément `HTML` de type `img`.
+- `map_legend` : Image de la légende. Balise à intégrer dans un élément `HTML` de type `div`.
+
+Dans le cas d'une carte en comparaison, il est aussi possible de récupérer la carte et la légende comparée. Dans ce cas, les noms des balises sont un peu différents : 
+
+- `map_image_compare_1` : Image de la carte de gauche. Balise à intégrer dans un élément `HTML` de type `img`.
+- `map_image_compare_2` : Image de la carte de droite. Balise à intégrer dans un élément `HTML` de type `img`.
+- `map_legend_compare` : Image de la légende de la carte de comparaison. Balise à intégrer dans un élément `HTML` de type `div`.
+
+Exemple permettant d'afficher l'image de la carte dans une impression (balise `map_image`) : 
+
+Partie `HTML` : 
+
+```
+<img id="map_image" class="map_image" src="images/transparent.png">
+```
+
+La taille de l'image est définie dans la partie CSS de la définition du modèle : 
+
+```
+.map_image {
+	background-color: #D8D8D8 !important;
+	height: 22cm;
+	width: 14cm;
+	border: 1px solid black;
+}
+```
+
+Exemple permettant d'afficher la légende de la carte dans une impression (balise `map_image`) : 
+
+Partie `HTML` : 
+
+```
+<!-- Mode normal -->
+<div ng-if="!compare_mode" class="container" style="top: 5cm; left: 1.5cm;">
+	<label class="legend_headline">Légende</label><br>
+	<div id="map_legend" ng-if="map_legend">
+		<div ng-repeat="legendLayer in map_legend">
+			<div ng-repeat="legend in legendLayer.legendObjects" class="legend_object">
+				<div class="legend_layer_name">{{ legend.layerName }}</div><br>
+				<img ng-src="{{ legend.legendURL }}" class="legend_image" />
+			</div>
+		</div>
+	</div>
+</div>
+```
+
+```  
+<!-- Mode comparaison -->
+<div ng-if="compare_mode" class="container" style="top: 5cm; left: 1.5cm;">
+	<div id="map_legend" ng-if="map_legend">
+		<label class="legend_headline">Légende 1</label>
+		<div ng-repeat="legendLayer in map_legend">
+			<div ng-repeat="legend in legendLayer.legendObjects" class="legend_object">
+				<div class="legend_layer_name">{{ legend.legendName }}</div>
+				<img ng-src="{{ legend.legendURL }}" class="legend_image" />
+			</div>
+		</div>
+	</div>
+	<div id="map_legend_compare" ng-if="map_legend_compare">
+		<label class="legend_headline">Légende 2</label>
+		<div ng-repeat="legendLayer in map_legend_compare">
+			<div ng-repeat="legend in legendLayer.legendObjects" class="legend_object">
+				<div class="legend_layer_name">{{ legend.legendName || legend.layerName }}</div>
+				<img ng-src="{{ legend.legendURL }}" class="legend_image" />
+			</div>
+		</div>
+	</div>
+</div>
+```
+
+Partie `CSS` : 
+
+```
+.map_legend {
+	width: 3cm;
+	margin-top: 16px;
+}
+
+#map_legend_compare {
+	margin-top: 100px;
+}
+
+.map_legend_compare_mode {
+	width: 3cm;
+	margin-top: 16px;
+}
+```
+
+
+
+### 2- Autres variables disponibles
+
+En plus de pouvoir intégrer dynamiquement des images dans l'impression, vMap donne la possibilité d'intégrer de nombreuses valeurs faisant référence : 
+- à l'utilisateur qui réalise l'impression
+- à des informations de la carte
+- ou encore à la date
+
+Ces informations doivent être ajoutées dans la définition `HTML` encadrées par des accolades (Exemple `{{date}}`) : 
+
+- `map_scale` : échelle de la carte imprimée
+- `date` : date du jour
+- `date_hour` : date + heure du jour
+- `layer_sources` : sources des couches
+- `map_legend`: légende de la carte principale
+- `user_name` : nom de l”utilisateur
+- `user_login` : login de l”utilisateur
+- `user_company` : société de l”utilisateur
+- `user_department` : service de l”utilisateur
+- `user_email` : adresse mail de l”utilisateur
+- `user_id` : identifiant de l'utilisateur 
+
+### 2- Directives Utilisables dans la définition modèle :
+
+- `ng-if="map_legend"` : Cette directive AngularJS conditionne l'affichage de la légende. Le contenu n'est affiché que si la variable `map_legend` existe et contient des données.
+- `ng-repeat="legendLayer in map_legend"` : Cette directive permet de parcourir chaque élément de la variable `map_legend`. Pour chaque élément (qui représente un calque de la légende), une nouvelle `<div>` est créée.
+- `ng-repeat="legend in legendLayer.legendObjects"` : À l'intérieur de chaque calque de légende, cette directive parcourt les objets de la légende (les éléments individuels à afficher). Pour chaque objet, une nouvelle `<div>` est créée avec la classe `legend_object`.
+- `{{ legend.layerName }}` : Cette interpolation affiche le nom du calque de la légende.
+- `ng-src="{{ legend.legendURL }}"` : Cette directive AngularJS lie dynamiquement l'URL de l'image de la légende à l'attribut `src` de la balise `<img>`. Cela permet d'afficher l'image correspondante à chaque élément de la légende.
+
+## Styles d'impression
+
+Le "style" d'impressions permettent à l'application de pouvoir définir un style différent pour chaque utilisateur.
+Configurés par l'administrateur et définis en HTML avec des balises de styles CSS, les styles surchargent ceux du modèle d'impression utilisé et peuvent, entre autres, impacter les couleurs, les espacements, un logo etc.
+
+![Sélection du style des impressions](../../images/administrator/impressions/selection_du_style_des_impressions.png)
+
+### Exemple de modification du logo dans une impression
+
+Pour modifier le logo dans le header du modèle d'impression par défaut de vMap, nommé "Modèle par défaut", il faut tout d'abord identifier la balise contenant l'image à rendre variable en fonction de l'utilisateur qui est connecté. Cette balise peut être identifiée grâce à sa classe et celle-ci doit être unique.
+
+![Sélection du style des impressions](../../images/administrator/impressions/html_logo.png)
+
+Une fois la balise détectée, créer un style d'impression en cliquant sur `Ajouter` depuis le mode `Impressions` > ` Style d'impressions` et remplir l'ensemble des informations demandées par le formulaire (un nom, les utilisateurs associés à ce style ainsi qu'une définition CSS).
+
+Dans l'exemple évoqué, celui de rendre variable le logo du modèle d'impression, voici un bout de code CSS, qui remplace le contenu de la balise `image` avec la classe `logo` par l'image en base 64 mentionnée en CSS.
+
+```
+<style>
+  .logo {
+    content: url('data:image/png;base64,...');
+  }
+</style>
+```
+
+Ce style va surcharger le logo existant dans le modèle d'impression par défaut avec la nouvelle image fournie.
+
+## Échelles
+
+L'outil d'impression de vMap inclut une liste d'échelles permettant aux utilisateurs d'imprimer une carte à une échelle bien précise.
+
+![Outils de la carte](../../images/administrator/impressions/echelles.png)
+
+Cette liste d'échelle est paramétrable à partir du mode `Impressions` > `Echelles d'impression` de l'application vMap.
\ No newline at end of file
diff --git a/doc/source/administrator/index.rst b/doc/source/administrator/index.rst
index 441baea252f2071ebff8ae912d1d21abd088df56..0c623d012933b8f51212588bc75ffaf21d2c4c29 100644
--- a/doc/source/administrator/index.rst
+++ b/doc/source/administrator/index.rst
@@ -11,8 +11,12 @@ Il est conseillé aux administrateurs de consulter en premier la `Documentation
    :maxdepth: 2
 
    authentification/index.rst
+   rights/index.rst
+   impression/impressions.md
    users.md
+   rapports/index.rst
    configuration/index.rst
    api/api.rst
    journaux.md
    cadastre/index.rst
+   flux/flux.md
diff --git a/doc/source/administrator/rapports/definition_html.md b/doc/source/administrator/rapports/definition_html.md
new file mode 100644
index 0000000000000000000000000000000000000000..ec3047efd71bc72fa278b15f8e0cb0dff4c2aab4
--- /dev/null
+++ b/doc/source/administrator/rapports/definition_html.md
@@ -0,0 +1,150 @@
+# Définition du modèle HTML
+
+Un rapport est défini selon un modèle HTML développé par l'administrateur.  
+Il est également possible d'utiliser le langage CSS dans la définition HTML pour personnaliser son rapport.  
+```{Note}
+  Le modèle HTML peut utiliser la syntaxe de AngularJS pour lui permettre de réaliser des conditions ou de boucler sur un élément (Exemple `ng-if` et `ng-repeat`).
+```
+
+## Intégrer une valeur dynamique dans le rapport 
+
+Lorsqu'un rapport est lié à une couche, il est possible d'insérer une valeur dynamique à partir des champs de celle-ci. Pour cela, il faut indiquer le champ précédé par "BO." et le tout entouré d'accolades.  
+
+**Exemple :**
+
+Si dans la couche "Ville" il y a un champ "nom_ville", il est possible d'utiliser `{{BO.nom_ville}}` dans le rapport. Cette balise sera alors remplacée par la valeur du champ "nom_ville" de l'objet courant.
+
+```html
+<p>{{BO.nom_ville}}</p>
+```
+
+### Variables disponibles
+
+En plus des variables possibles à renseigner depuis la couche associée, les rapports de vMap disposent d'un ensemble de variables disponibles par défaut. Pour les utiliser, il suffit de les insérer en les entourant de doubles accolades (**{{..}}**).
+
+- **date** : date du jour
+- **date_hour** : date et heure du jour
+- **layer_sources** : sources des couches
+- **map_legend** : légende de la carte principale
+- **user_name** : nom de l'utilisateur
+- **user_login** : login de l'utilisateur
+- **user_company** : société de l'utilisateur
+- **user_department** : service de l'utilisateur
+- **user_email** : adresse mail de l'utilisateur
+- **user_id** : identifiant de l'utilisateur
+
+## Intégrer une image dynamiquement
+
+Il est possible d'intégrer une image dans un rapport en utilisant la balise HTML **img** et en modifiant la source dynamiquement. Deux formats sont alors pris en compte :
+
+- Lien (de type https://...)
+- Base 64 (de type data:image/png;base64,...)
+
+<u>Exemple :</u>
+```html
+<img src="https://www.example.com/image.png" alt="Description de l'image">
+<img src="data:image/png;base64,..." alt="Description de l'image">
+```
+
+Il est aussi possible de mettre un id="..." à la balise et de la lier à un objet JSON pour afficher l'image dynamiquement.  
+
+*Exemple avec id et lien à un objet JSON :*
+
+Code HTML : 
+```html
+<img id="sig_logo" src="" alt="Image dynamique">
+```
+
+Code Json correspondant à l'image: 
+
+```html
+{
+	"type": "image",
+	"imageUrl": "data:image/png;base64,iVBORw0KGgoAAxFDAnF6fftB2....",
+	"target": "#sig_logo"
+}
+```
+
+```{Note}
+Si à la fois l'attribut id de la balise HTML et l'attribut src sont tous deux remplis, l'objet JSON prendra le dessus pour déterminer l'URL finale de l'image affichée.
+```
+
+## Intégrer une valeur dynamique à l'aide d'une boucle
+
+Dans certains cas, l'objet Json renvoie de multiples valeurs. Afin de pouvoir toutes les afficher dans le rapport, réaliser une boucle peut s'avérer nécessaire. Pour cela, utiliser la syntaxe `ng-repeat` dans le modèle HTML.
+
+```{Note}
+Il est également possible d'ajouter la syntaxe `ng-if` dans les boucles pour faire des conditions.
+```
+
+Voici comment procéder :
+
+1. S'assurer que les données que l'on souhaite afficher dans la boucle sont disponibles sous forme d'un [Objet JSON](objet_json.md).
+2. Utiliser la syntaxe `ng-repeat` et `ng-if` dans le modèle HTML utiliser les données de l'Objet JSON
+3. À chaque itération de la boucle, accéder aux propriétés de l'objet souhaité pour afficher les données dans le rapport.
+
+### Exemple :
+
+Supposons que l'ont ait une liste d'objets représentant des intersections de routes, et que l'on souhaite afficher les détails de chaque intersection dans le rapport. Voici comment procéder en utilisant `ng-repeat` :
+
+```html
+<!-- Boucle exécutée uniquement si parcel_details existe -->
+<div ng-repeat="parcelle in parcel_details" ng-if="parcel_details">
+    <div ng-if="parcelle.prop">
+        <!-- Afficher les détails de chaque intersection -->
+        <p>Propriétaire de la parcelle : {{parcelle.prop}}</p>
+    </div>
+    <div ng-if="parcelle.id_par">
+        <p>Nombre de routes : {{parcelle.id_par}}</p>
+        <!-- Ajoutez d'autres détails selon vos besoins -->
+    </div>
+</div>
+```
+
+Dans cet exemple :
+
+- ng-repeat="parcelle in parcel_details" indique que vous itérez à travers la liste de parcelles stockées dans la variable parcel_details.
+- {{parcelle.prop}}, {{parcelle.id_par}}, etc., représentent les propriétés de chaque objet `parcelle` que vous affichez dans votre rapport.
+
+Il est aussi possible d'afficher entièrement un objet au format JSON dans le rapport en utilisant la syntaxe `{{ ma_variable|json }}`.  
+En reprenant notre exemple cela donnerait : 
+
+```html
+<div ng-if="parcelle">
+    {{parcelle|json}}
+</div>
+```
+
+## Exemple complet
+
+```html
+<style>
+.prop {
+    font-size: 15px;
+    color: red;
+    text-align: center;
+}
+
+#id_par {
+    font-size: 12px;
+}
+</style>
+
+<!-- Boucle exécutée uniquement si parcel_details existe -->
+<div ng-repeat="parcelle in parcel_details" ng-if="parcel_details">
+    <div ng-if="parcelle.prop">
+        <!-- Afficher les détails de chaque intersection -->
+        <p class="prop">Propriétaire de la parcelle : {{parcelle.prop}}</p>
+    </div>
+    <div ng-if="parcelle.id_par">
+        <p id="id_par">Nombre de routes : {{parcelle.id_par}}</p>
+        <!-- Ajoutez d'autres détails selon vos besoins -->
+    </div>
+    <img src="https://www.veremes.com/wp-content/uploads/2023/01/vMap2_carteFrance.webp" alt="Image d'exemple">
+    <!-- L'objet sig_logo doit être renseigné dans l'objet JSON -->
+    <img id="sig_logo" src="" alt="Image dynamique">
+    <div ng-if="parcelle">
+        {{parcelle|json}}
+    </div>
+</div>
+```
\ No newline at end of file
diff --git a/doc/source/administrator/rapports/index.rst b/doc/source/administrator/rapports/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a9ed02dff59b0a54c63f141d4bec35dd0bf4d8b5
--- /dev/null
+++ b/doc/source/administrator/rapports/index.rst
@@ -0,0 +1,16 @@
+Mode Rapport
+============================================
+
+--------------
+
+Le mode rapport permet d'administrer les rapports disponibles dans l'application c'est à dire, d'en définir un modèle, et de le compléter par des valeurs issues de données variables.
+
+============================================
+
+.. toctree::
+   :maxdepth: 2
+   :glob:
+
+   informations_generales.md
+   definition_html.md
+   objet_json.md
diff --git a/doc/source/administrator/rapports/informations_generales.md b/doc/source/administrator/rapports/informations_generales.md
new file mode 100644
index 0000000000000000000000000000000000000000..29c6ef255f445c93e8bde0a33368425c7520faf5
--- /dev/null
+++ b/doc/source/administrator/rapports/informations_generales.md
@@ -0,0 +1,23 @@
+# Informations générales
+
+Un rapport est un document PDF généré dans vMap et personnalisable permettant d'afficher diverses informations selon les besoins des utilisateurs. Ce document est basé sur un modèle écrit par un administrateur de l'application.  
+Il peut être généré à partir de deux endroits dans l'application :
+- Le requêteur
+![rapport_requeteur](../../images/administrator/rapports/rapport_requeteur.png)
+- Edition d'un objet métier
+![rapport_objet_metier](../../images/administrator/rapports/rapport_objet.png)
+
+Pour qu'un rapport soit disponible, il est nécessaire de le créer à partir du menu "Rapports".
+
+Lors de la création d'un rapport, plusieurs paramètres doivent être renseignés :
+- **Nom du rapport** : Nom affiché dans les différentes listes de sélection du rapport.
+- **Format de la page** : Formats pris en charge allant de A0 à A4.
+- **Orientation du document** : Format **portrait** ou **paysage**.
+- **Format de sortie** : Extension du document téléchargé après sa génération (par exemple : PDF).
+- **Couche** : Le rapport doit être associé à une couche unique pour laquelle il sera disponible. Par exemple, si un rapport doit être généré lors de la sélection d'un objet de la couche "Ville" sur la carte, il faut associer ce rapport à la couche "Ville".
+- **Rapport sur plusieurs éléments dans un fichier** : En cas de sélection multiple, ce paramètre indique si l'application doit générer un rapport par élément (Non) ou un seul rapport contenant tous les éléments (Oui).
+- **Active les styles d'impression** : Si activé, une fenêtre modale s'ouvrira lorsque l'utilisateur demandera la génération d'un rapport, pour sélectionner le style d'impression à utiliser.
+- **Définition HTML** : Voir [Définition du modèle HTML](definition_html.md).
+- **Objet JSON** : Voir [Objet JSON](objet_json.md).
+
+![rapport_parametres](../../images/administrator/rapports/rapport_parametres.png)
\ No newline at end of file
diff --git a/doc/source/administrator/rapports/objet_json.md b/doc/source/administrator/rapports/objet_json.md
new file mode 100644
index 0000000000000000000000000000000000000000..e33cc8cf225efc618bb721873401a2687115c014
--- /dev/null
+++ b/doc/source/administrator/rapports/objet_json.md
@@ -0,0 +1,100 @@
+# Objet JSON
+
+Pour générer des rapports dynamiques, l'application utilise des objets JSON définis selon une structure spécifique. Cette section explique la structure et les différents types de données que l'on peut inclure dans ces objets JSON.
+
+## Exemple d'objet JSON
+
+```json
+[
+    {
+        "type": "map",
+        "target": "#map_container",
+        "map_id": 10,
+        "resolution_coeff": 1,
+        "scale_target": "map_scale"
+    },
+    {
+        "type": "webservice",
+        "params": {
+			"database": "vmap",
+            "schema": "s_cadastre",
+            "table": "v_vmap_parcelle",
+            "filter": "{\"column\":\"id_par\", \"compare_operator\":\"=\", \"value\": \"{{BO.id_par}}\"}"
+        },
+        "target": "parcel_details"
+    },
+    {
+        "type": "webservice",
+        "ressource": "/cadastre/ficheurbanisme",
+        "params": {
+            "ID_PAR": "{{BO.id_par}}"
+        },
+        "target": "urbanism_report"
+    },
+    {
+        "type": "image",
+        "imageUrl": "https://example.com/images/logo.png",
+        "target": "#sig_logo"
+    },
+    {
+        "type": "object",
+        "content": {
+            "company": "Ma_compagnie"
+        },
+        "target": "sig_info"
+    }
+]
+```
+
+## Explication des champs
+
+### 1. Map (`type: "map"`)
+
+- **target** : Élément HTML cible pour afficher la carte. Utiliser un sélecteur CSS.
+- **map_id** : Identifiant de la carte.
+- **resolution_coeff** : Coefficient de résolution de la carte.
+- **scale_target** : Élément HTML cible pour afficher l'échelle de la carte.
+
+### 2. Webservice (`type: "webservice"`)
+
+Il y a deux possibilités pour ce type de ressource :
+
+1. **Utilisation d'une table locale de la base de données de l'application** :
+    - **params** :
+      - **database** : Nom de la base de données. Ce paramètre n'est pas obligatoire. S'il n'est pas présent, l'application recherche le schema + table dans la base de données ou l'application vMap a été installée.
+      - **schema** : Schéma de la base de données.
+      - **table** : Table de la base de données.
+      - **filter** : Filtre pour la requête SQL. Il est possible d'inclure des variables dynamiques ou fixes, et d'inclure plusieurs filtres si besoin.
+      Le filtre doit être sous forme de chaîne de caractères avec les guillemets échappés, comme suit :
+        ```json
+        "[{\"column\":\"id_par\", \"compare_operator\":\"=\", \"value\": \"{{BO.id_par}}\"}, {\"column\":\"id_par\", \"compare_operator\":\"=\", \"value\": \"AZ0001\"}]"
+        ```
+        - **column** : Nom de la colonne à filtrer.
+        - **compare_operator** : Opérateur de comparaison. Les opérateurs disponibles sont :
+          - `=`, `!=`, `<>`, `>=`, `<=`, `>`, `<`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `LIKE`, `INTERSECT`.
+        - **value** : Valeur à comparer, qui peut inclure une variable dynamique telle que `{{BO.id_par}}`.
+    - **target** : Nom de la variable à utiliser dans le HTML avec les doubles accolades. Par exemple : `{{parcel_details}}`.  
+
+2. **Utilisation d'une route externe** :
+    - **ressource** : Chemin de la ressource du webservice.
+    - **params** : Les paramètres nécessaires pour la route. Ces paramètres dépendent des besoins spécifiques de la route externe et peuvent inclure des variables dynamiques. Exemple :
+      ```json
+      {
+          "ID_PAR": "{{BO.id_par}}"
+      }
+      ```
+    - **target** : Nom de la variable à utiliser dans le HTML avec les doubles accolades. Par exemple : `{{urbanism_report}}`.
+
+Les routes disponibles via l'utilisation du webservice peuvent être trouvées dans le mode "API" de l'application :
+![rapport_routes](../../images/administrator/rapports/rapport_routes.png)
+
+### 3. Image (`type: "image"`)
+
+- **imageUrl** : URL de l'image à intégrer.
+- **target** : Élément HTML cible pour afficher l'image. Utiliser un sélecteur CSS.
+
+### 4. Object (`type: "object"`)
+
+- **content** : Contenu de l'objet, peut inclure diverses propriétés.
+- **target** : Nom de la variable à utiliser dans le HTML avec les doubles accolades. Par exemple : `{{sig_info}}`.
+
diff --git a/doc/source/administrator/rights/auth_token.md b/doc/source/administrator/rights/auth_token.md
new file mode 100644
index 0000000000000000000000000000000000000000..e3b2a1639d222b25c622610bae09036da6b7bdc7
--- /dev/null
+++ b/doc/source/administrator/rights/auth_token.md
@@ -0,0 +1,84 @@
+# Gestion des jetons de connexion
+
+Un jeton de connexion est une manière d'accéder à l'application, via le compte d'un utilisateur, sans avoir à fournir ses identifiants.  
+Cette fonctionnalité est communément utilisé pour réaliser des `cartes ou applications publiques` (sans avoir à renseigner des informations de connexion).
+
+## Utilité
+
+Un jeton de connexion permet :
+
+- D'utiliser l'API
+- D'utiliser vMap comme un utilisateur normal mais sans que ce dernier ait la nécessité de se loguer à l'application (carte publique)
+- D'utiliser vMap sous forme de widget (intégrer vMap dans un site web).
+
+## Création d'un jeton
+
+Il est possible de créer un jeton de connexion depuis le bouton `Ajouter` présent dans le mode "Utilisateurs" > "Jetons de connexion".  
+
+![ajout_jeton](../../images/administrator/rights/auth_token/ajout_jeton.png)
+
+Les informations demandées permettent ainsi de définir : 
+    - Le nom du jeton de connexion
+	- S'il possède une date limite de fonctionnement
+	- Un login et mot de passe utilisateur permettant à l'application de se connecter `en tant que` l'utilisateur renseigné
+	- Et enfin une restriction de ce jeton sur une IP précise.
+
+![add_modify_token_form](../../images/administrator/rights/auth_token/add_modify_token_form.png)
+
+## Exemples d'utilisation
+
+### Utilisation d'un jeton dans l'API de vMap
+
+Il est possible, via un jeton utilisateur, de récupérer un jeton de connexion, permettant d'utiliser l'API de vMap2.
+
+Pour ce faire, il faut tout d'abord récupérer le champ `ID` au niveau du token dans la liste :  
+
+![id_token](../../images/administrator/rights/auth_token/id_jeton.png)
+
+Il est ensuite possible d'obtenir un token d'authentification en requêtant la route `vitis/privatetoken` avec le jeton dans l'header `Authorization` :  
+
+![auth_token_api](../../images/administrator/rights/auth_token/auth_token_api.png)
+
+Celui-ci peut ensuite être utilisé dans le reste des routes de l'API, dans le token `Authorization`, et permet de se servir de l'API comme une connection utilisateur/mot de passe classique :  
+
+![auth_token_jeton](../../images/administrator/rights/auth_token/auth_token_jeton.png)
+
+### Utilisation d'un jeton pour réaliser une "carte publique"
+
+Pour réaliser une connexion publique (sans couple login / mot de passe à renseigner) dans vMap, il est nécessaire de mettre en place un jeton de connexion et de renseigner ce jeton 
+
+
+Pour ce faire, 2 propriétés sont à paramétrer dans la section `Authetification` du mode `Configuration > Général.`.
+
+```{figure} ../../images/administrator/rights/auth_token/jeton_connexion_public.png
+:alt: Paramètre du mode public
+:align: center  
+```
+
+Une fois ces informations mises en place, il est possible d'accéder à l'application sans connexion de l'utilisateur. 
+
+```{figure} ../../images/administrator/rights/auth_token/mode_publique.png
+:alt: mode_publique
+:align: center
+
+Exemple d'application avec le mode public
+```
+
+### Utilisation d'un jeton pour réaliser un "widget carte"
+
+Dans vMap2, il est également possible de créer un `widget de type carte` permettant d'intégrer des cartes dans d'autres applications WEB.  
+Pour fonctionner, les widgets nécessitent un jeton de connexion existant.  
+
+Pour créer un widget, éditer une carte depuis le mode `Cartes et Couches` > `Cartes` de l'application :
+
+![carte_datagrid](../../images/administrator/rights/auth_token/carte_datagrid.png)
+
+Se rendre dans la section `Appel externe`,  y ajouter un nouvel enregistrement et y renseigner les informations demandées, notamment le jeton de connexion (indirectement le login de l'utilisateur) qui sera utilisé lors de chaque utilisation du widget :
+
+![carte_appel_externe](../../images/administrator/rights/auth_token/carte_appel_externe.png)
+
+![ajout_widget](../../images/administrator/rights/auth_token/ajout_widget.png)
+
+Une fois créé, l'application génère un code HTML qu'il suffit de copier / coller à l'endroit souhaité sur le site web :  
+
+![url_widget](../../images/administrator/rights/auth_token/url_widget.png)
\ No newline at end of file
diff --git a/doc/source/administrator/rights/data.md b/doc/source/administrator/rights/data.md
new file mode 100644
index 0000000000000000000000000000000000000000..3d75d924247cf859735e94a41e7a6c22afbe6bd3
--- /dev/null
+++ b/doc/source/administrator/rights/data.md
@@ -0,0 +1,77 @@
+# Les droits portant sur les données
+
+## Introduction
+
+Bien que les privilèges et les groupes permettent d'accéder à certaines fonctionnalités de l'application, ces deux notions ne permettent pas de gérer l'accéssibilité à la données (lecture, saisie, modification, suppression). Cette notion là est gérée par le SGBD (Postgresql pour vMap) sur la donnée (table, vue, vue matérialisée...). Cela peut être réalisé en ligne de commande ou plus communément par l'intermédiaire d'un client de base de données (exemple : PgAdmin, Dbeaver...)
+
+Rajouter des droits à ces éléments permet ainsi à l’utilisateur final de pouvoir réaliser des actions différentes sur une donnée dans vMap2 (consultation, saisie, édition, suppression, d’une donnée géographique et / ou attributaire).  
+
+Une mauvaise gestion, ou un oubli de ces droits pourraient entraîner l'impossibilité pour un utilisateur de visualiser, d'éditer, de saisir ou de supprimer une donnée.
+
+## Exemple
+
+```{note}
+Le tutoriel suivant est illustré avec le client SQL pgadmin.  
+Le principe est que quelque soit le client utilisé, le code SQL pour Postgresql reste le même.
+```
+
+Pour cet exemple, nous souhaitons qu'un utilisateur ou groupe d'utilisateurs (appartenant au groupe `exploitant_ville`) puisse consulter, mettre à jour ou supprimer les données de la table `data_demo_vmap`.`f_villes_l93`. Pour cela voici les étapes : 
+
+    1- Créer un rôle groupe (soit directement en base de données, soit via les privilèges de vMap)
+	2- Associer l'utilisateur à ce rôle groupe  
+	3- Affecter les droits sur la table à ce rôle groupe  
+	
+
+
+j'aimerais rajouter le privilège `exploitant_ville` sur ma table `data_demo_vmap`.`f_villes_l93`, afin qu'un utilisateur ayant ce privilège puisse consulter, saisir/mettre à jour/supprimer les données de ma couche `ville` utilisant cette table.
+
+### 1- Créer un rôle groupe
+
+```{note}
+Le fonctionnement et la création d'un privilège sont expliqués dans la [section suivante](./privilege.md).
+```
+
+![privilege_gestion_droits](../../images/administrator/rights/data/privilege_gestion_droits.png)
+
+### 2- Associer l'utilisateur à ce rôle groupe  
+
+```{note}
+La gestion d'un utilisateur ainsi que ses droits sont expliqués dans la [section suivante](../authentification/local_user.md).
+```
+
+### 3- Affecter les droits sur la table à ce rôle groupe
+
+
+Pour ajouter des droits sur une table, il faut tout d'abord ouvrir un client de base de données (exemple pgAdmin) et se connecter à la base de données. 
+
+![connexion_base](../../images/administrator/rights/data/connexion_base.png)
+
+Une fois connecté, naviguer dans la base via le menu latéral jusqu'à trouver la table concernée :  
+
+![table_menu_lateral](../../images/administrator/rights/data/table_menu_lateral.png)
+
+Clic droit > Propriété, et se rendre dans l'onglet "Security" de la fenêtre qui s'ouvre.  
+
+![onglet_securite](../../images/administrator/rights/data/onglet_securite.png)
+
+Cliquer sur le signe "+" de la ligne "Privileges", sélectionner `exploitant_ville` dans la colonne `Grantee` afin de donner des droits au rôle groupe (et donc à l'ensemble des utilisateurs associés à ce rôle groupe) sur la table `data_demo_vmap`.`f_villes_l93`. 
+
+```{note}
+Il est possible d'ajouter des droits pour un utilisateur simple ou un groupe d'utilisateur.
+```
+
+Sélectionner les droits `SELECT`, `INSERT`, `UPDATE` et `DELETE` dans la colonne `Privilèges` pour donner les droits en consultation, création, mise à jour et suppression. Enregistrer.
+
+![onglet_securite](../../images/administrator/rights/data/ajout_droit.png)
+
+:::{admonition} **Gérer les droits en SQL**
+:class: dropdown important
+Il est également possible d'atteindre le même résultat en SQL en utilisant l'éditeur de requêtes, par exemple via le bouton `Query Tool` sur pgadmin:
+![query_tool](../../images/administrator/rights/data/query_tool.png)
+
+La requête serait la suivante :
+```sql
+GRANT SELECT, INSERT, UPDATE, DELETE ON data_demo_vmap.f_villes_l93 TO exploitant_ville;
+```
+
+:::
\ No newline at end of file
diff --git a/doc/source/administrator/rights/group.md b/doc/source/administrator/rights/group.md
new file mode 100644
index 0000000000000000000000000000000000000000..a0a3a434c259c62f90a5bb16ede7c4bd57b63488
--- /dev/null
+++ b/doc/source/administrator/rights/group.md
@@ -0,0 +1,68 @@
+# Les groupes
+
+## Utilité 
+
+Dans vMap2, la notion de groupe est utilisée :  
+- pour définir les cartes qu'un "goupe" d'utilisateur a le droit de consulter
+- pour définir les modèles d'impression qu'un "goupe" d'utilisateur peut utiliser (A4, A3, portrait, paysage...)
+
+:::{admonition} **Détail de l'utilité des groupes**
+:class: dropdown important
+
+Les groupes de vMap2 sont utilisés aux emplacements suivants :  
+
+Au niveau des "informations générales" à l'édition d'une carte, afin de permettre l'accès aux cartes
+![groupe_edition_carte](../../images/administrator/rights/group/groupe_carte.png)
+
+Au niveau des "informations générales" des modèles d'impression, afin de permettre aux utilisateurs du groupe d'utiliser un modèle d'impression
+![groupe_modele_impression](../../images/administrator/rights/group/groupe_modele_impression.png)
+
+:::
+
+## Création
+
+Il existe actuellement deux manières de créer un groupe dans vMap2 :  
+
+- Via l'interface de création des groupes
+- Via l'import de groupes de l'interface AD/LDAP
+
+### Création de groupes via l'interface
+
+Il est possible d'ajouter un nouveau groupe dans l'interface "Utilisateurs" > "Groupes", puis en cliquant sur le bouton "Ajouter" en haut à droite :  
+![add_group_vitis](../../images/administrator/rights/group/add_group_vitis.png)
+
+Il suffit ensuite de saisir un nom pour le groupe, de cliquer sur les utilisateurs à ajouter et de les déplacer dans le menu de droite pour les ajouter, puis de cliquer sur le bouton "Créer".
+![insert_add_group_vitis](../../images/administrator/rights/group/insert_add_group_vitis.png)
+
+
+### Création de groupes via l'import de l'AD/LDAP
+
+Il est également possible de créer des groupes en important des groupes d'un AD lié à vMap2.
+
+Pour ce faire, il faut se rendre dans la section "Utilisateurs" > "Domaines" et cliquer sur le bouton en forme de crayon associé au domaine que l'on veut modifier.
+
+```{tip}
+Un tutoriel sur le fonctionnement de l'ajout d'un AD ou d'un LDAP est disponible au [lien suivant](#).
+```
+![edit_ad_ldap](../../images/administrator/rights/group/edit_ad_ldap.png)
+
+Une fois dans ce menu, il est ensuite possible d'ajouter les groupes dans vMap2 en allant dans la sous-section "Liste des groupes", en sélectionnant plusieurs groupes en cliquant dessus, puis en cliquant sur le bouton "Importer".
+![import_ad_ldap](../../images/administrator/rights/group/import_ad_ldap.png)
+
+:::{admonition} **Synchronisation des groupes AD/LDAP avec vMap2**
+:class: dropdown important
+
+Il est possible de synchroniser les groupes avec l'annuaire, dans ce cas, un script viendra mettre à jour le lien entre les utilisateurs de ce domaine et ce groupe à intervalle régulier. 
+La synchronisation est à configurer dans la [configuration](../configuration/active_directory.md).
+
+Il est ensuite possible d'activer ou de désactiver la synchronisation dans le menu du groupe, à noter qu'il est également possible de la faire manuellement via le bouton "Synchroniser".
+![ad_ldap_sync](../../images/administrator/rights/group/ad_ldap_sync.png)
+
+:::
+
+```{note}
+Le fonctionnement est légèrement différent de ce que l'application faisait en version 2019 et antérieur.  
+Les groupes ne sont plus vérifiés par rapport à l'annuaire systématiquement à chaque fois, les groupes locaux sont toujours utilisés, en revanche, il est possible de rafraîchir le lien local régulièrement pour suivre les modifications faites sur l'annuaire.
+```
+
+Les groupes fonctionnent par la suite comme des groupes vMap2 normaux.
\ No newline at end of file
diff --git a/doc/source/administrator/rights/index.rst b/doc/source/administrator/rights/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d948b429ff2363327456de598ed8de57a0f0ff88
--- /dev/null
+++ b/doc/source/administrator/rights/index.rst
@@ -0,0 +1,17 @@
+Gestions des droits
+============================================
+
+--------------
+
+Cette section concerne la gestion de l'intégralité des droits de l'application vMap2, c'est-à-dire leurs utilités, leurs fonctionnements, leurs portées, ...
+
+============================================
+
+.. toctree::
+   :maxdepth: 2
+
+   group.md
+   privilege.md
+   data.md
+   restriction.md
+   auth_token.md
\ No newline at end of file
diff --git a/doc/source/administrator/rights/privilege.md b/doc/source/administrator/rights/privilege.md
new file mode 100644
index 0000000000000000000000000000000000000000..3d419b0020aaa75ef9467187f0e1e8c8ffc1e9b9
--- /dev/null
+++ b/doc/source/administrator/rights/privilege.md
@@ -0,0 +1,60 @@
+# Les privilèges
+
+## Fonctionnement
+
+Les privilèges sont l'essence de l'application, ce sont ceux-ci qui permettent l'accès aux différentes fonctionnalités dans l'application.
+
+Il existe deux types de privilèges :
+
+- Les privilèges propres à l'application, ceux-ci ne doivent pas être modifiés, édités, ou supprimés, sous peine d'une impossibilité d'utiliser l'application par la suite.
+- Les privilèges créés par l'administrateur de l'application, qui servent souvent à limiter l'accès aux données.
+
+## Privilèges de l'application vMap
+
+vMap contient une liste de privilèges permettant d'autoriser l'accès à différentes parties de l'application :  
+
+
+- `vitis_user :` permet de se connecter à l'application et de configurer son utilisateur.
+
+- `vitis_admin :` permet d'accéder à différents modes "super administrateur" de vMap permettant :  
+    - de gérer les utilisateurs, domaines, groupes ou jetons de connexions
+    - de consulter les logs
+    - de consulter l'API
+    - et de configurer l'application de manière générale (propriétés générales sur l'authentification, l'interface, les traductions...)
+
+- `vmap_user :` permet d'accéder au mode "Carte" (à la cartographie) et donc à l'ensemble des fonctionnalités qui y sont disponibles (requêteur, filtre, sélection, ...).
+
+- `vmap_admin :` permet d'accéder à l'administration de vMap au sens "cartographie" c'est-à-dire 
+    - la gestion des couches, cartes, thèmes, sources
+	- la gestion des flux (WMS et WFS)
+	- la gestion des symboles et polices d'écriture
+	- la gestion des sources de données
+	- la gestion des formulaires métier
+	- et enfin la gestion des impressions (modèles et styles) et rapports
+
+- `vmap_data_manager :` permet à l'utilisateur d'avoir accès au mode "tableau" et à ses différentes fonctionnalités.
+
+- `vitis_shared :` permet de gérer l'arborescence du dossier shared, dossier partagé entre plusieurs utilisateurs pour s'échanger des ressources.
+
+## Gestion des privilèges
+
+La gestion des privilèges est accessible via l'interface des privilèges disponible dans "Utilisateurs" > "Privilèges".  
+L'accès à l'interface nécessite le droit `vitis_admin`
+
+![interface_privilege](../../images/administrator/rights/privileges/interface_privileges.png)
+
+Il est ensuite possible de créer des nouveaux privilèges via le bouton "Ajouter", ou d'en modifier via le crayon :  
+
+![gestion_privilege](../../images/administrator/rights/privileges/privileges_gestion.png)
+
+Il suffit ensuite de renseigner ou modifier les différentes informations, ainsi qu'associer les utilisateurs via la liste, puis d'appuyer sur le bouton "Créer"/"Modifier".
+
+![form_privileges](../../images/administrator/rights/privileges/form_privileges.png)
+
+```{tip}
+Il est également possible d'ajouter des privilèges à un utilisateur via le formulaire d'ajout/modification d'un utilisateur, au chemin "Utilisateurs" > "Utilisateurs".
+
+![interface_users](../../images/administrator/rights/privileges/interface_users.png)
+
+![form_users_privileges](../../images/administrator/rights/privileges/form_users_privilege.png)
+```
\ No newline at end of file
diff --git a/doc/source/administrator/rights/restriction.md b/doc/source/administrator/rights/restriction.md
new file mode 100644
index 0000000000000000000000000000000000000000..5d2594d9e6a325cb7296a4cf996cd5cc14c1e3b1
--- /dev/null
+++ b/doc/source/administrator/rights/restriction.md
@@ -0,0 +1,105 @@
+# Les restrictions (ex: restriction communales)
+
+Les restrictions sont un principe qui permet à un adminstrateur de restreindre l'accès à un utilisateur, à certaines données uniquement, contre un peu de configuration côté application et base de données.  
+
+Ce principe est par exemple très utilisé au niveau des données cadastrales, afin de mettre en place des restrictions communale en renseignant, par exemple, le code INSEE d'une ou plusieurs communes, afin que l'utilisateur ait seulement accès (en consultation et interrogation) aux données cadastrales de son territoire.  
+
+## Configuration
+
+Pour saisir une restriction, il faut se rendre dans la section "Utilisateurs" > "Utilisateurs" du menu latéral, puis éditer l'utilisateur sur lequel il faut définir une restruction (cliquer sur le bouton en forme de crayon à côté de l'utilisateur).
+
+![user_datagrid](../../images/administrator/rights/restriction/user_datagrid.png)
+
+Une fois dans l'interface de modifications, renseigner la restriction dans le champ  `Restriction` de la section "Droits et restrictions".  
+
+![restriction_modify_user](../../images/administrator/rights/restriction/restriction_modify_user.png)
+
+```{note}
+La bonne syntaxe pour la chaîne de caractères est un ensemble de chaînes de caractères, séparés par un séparateur (le caractère `|`).  
+Par exemple, pour réaliser une restriction communales sur plusieurs communes, inscrire les Code INSEE séparés par le caractère `|`.  
+
+```sql
+66106|66125|07324
+```
+
+Une fois la restriction côté utilisateur réalisée, il reste désormais à configurer la base de données afin que cette dernière utilise la restriction.
+
+## Paramétrage côté base de données
+
+Côté base de données, les restrictions sont réalisées par l'intermédiaire de vues en utilisant une clause `WHERE`.
+
+#### Exemple
+
+Dans cet exemple, nous allons travailler avec la table des villes (`data_demo_vmap`.`f_villes_f93`) constituée des colonnes suivantes :  
+
+![table_villes](../../images/administrator/rights/restriction/table_villes.png)
+
+Voici les étapes à réaliser : 
+
+    1- Création de la vue 
+	2- Ajouter la clause `WHERE` en faisant référence à la restriction de l'utilisateur.
+
+
+Pour créer la vue, cliquer droit sur "views" > "Create" > "View..."
+
+![create_view](../../images/administrator/rights/restriction/creer_vues.png)
+
+Entrer un nom, et se rendre dans l'onglet "code" :  
+
+![view_onglet_code](../../images/administrator/rights/restriction/view_onglet_code.png)
+
+Dans l'onglet "Code", ajouter le code SQL suivant en adaptant le paramètre `[nom de la colonne]` :  
+
+
+```sql
+WHERE [nom de la colonne] ~ similar_escape(( SELECT "user".restriction
+FROM s_vitis."user"
+WHERE "user".login::name = "current_user"()), NULL::text);
+```
+
+```{note}
+`[nom de la colonne]` correspond au nom du champ référencé dans le champ `Restriction` de l'utilisateur.  
+Exemple : `code_insee`, `code_com`, `code_dep`.
+```
+
+Dans notre exemple, le code suivant permet de filtrer les villes en fonction du champ `code` correspondant au `Code INSEE` de la commune:  
+
+
+```sql
+WHERE f_villes_93.code ~ similar_escape(( SELECT "user".restriction
+FROM s_vitis."user"
+WHERE "user".login::name = "current_user"()), NULL::text);
+```
+
+Ce code SQL rajoute une condition WHERE à la vue dont l'aspect final est celui-ci :
+
+![code_sql_vue](../../images/administrator/rights/restriction/code_sql_vue.png)
+
+
+#### Test
+
+Afin de tester si la restriction fonctionne, se connecter à la base de données et exécuter une requête `SELECT` sur la vue en changeant d'utilisateur (exemple ci-dessous avec l'utilisateur `kyllian`) : 
+
+![filtre_fonctionnel](../../images/administrator/rights/restriction/filtre_fonctionnel.png)
+
+
+## Les restrictions dans le module Cadastre.
+
+Tout le module cadastre de vMap utilise nativement les restrictions expliquées ci-dessous. Excepté le champ `Restriction` qui doit être paramétré par l'administrateur, aucune vue ne doit être configurée car tout est déjà réalisé par Veremes.
+
+
+Pour le module cadastre, l'utilisation la plus commune est de restreindre, pour un utilisateur donné, l'accessibilité à une ou plusieurs communes du territoire chargé en base de données.
+
+Les données du cadastre étant sensibles, il est indispensable qu'un utilisateur puisse consulter et surtout interroger uniquement les données dont il doit avoir l'accès.
+
+#### Exemple
+
+Dans l'exemple ci-dessous, nous avons chargé les données cadastrales de l'ensemble des Pyrénées-Orientales.
+
+Sans restriction (valeur `%` dans le champ `restriction` de l'utilisateur), un utilisateur a accès à la totalité des données des Pyrénées-Orientales.  
+
+![restriction_cadastre_sans](../../images/administrator/rights/restriction/restriction_cadastre_sans.png)
+
+Une fois la restriction mise en place (pour celle-ci, `66136|66210`), seules les communes filtrées sont accessibles à l'utilisateur.
+
+![restriction_cadastre_avec](../../images/administrator/rights/restriction/restriction_cadastre_avec.png)
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 176f292e239b6ac587d32c6c745fa2618e8cf95a..0ace35e10da3bed0c99b872e85756c6807a576bb 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -54,6 +54,7 @@ extensions = [
     'sphinx.ext.coverage',
     'sphinx.ext.mathjax',
     'sphinx.ext.autosectionlabel',
+    'sphinx_togglebutton',
     'myst_parser',
     'sphinx.ext.viewcode',
 ]
@@ -116,6 +117,10 @@ html_css_files = [
     'css/custom.css',
 ]
 
+html_js_files = [
+    'js/custom.js',
+]
+
 # All the foremat supported
 source_suffix = {
     '.rst': 'restructuredtext',
diff --git a/doc/source/images/administrator/flux/creation_flux.png b/doc/source/images/administrator/flux/creation_flux.png
new file mode 100644
index 0000000000000000000000000000000000000000..09592864b9cd2edac02a6511319d04c93bb17ac8
Binary files /dev/null and b/doc/source/images/administrator/flux/creation_flux.png differ
diff --git a/doc/source/images/administrator/flux/creation_publication.png b/doc/source/images/administrator/flux/creation_publication.png
new file mode 100644
index 0000000000000000000000000000000000000000..3143a0ba2d69ff348857699738281582b3f08fae
Binary files /dev/null and b/doc/source/images/administrator/flux/creation_publication.png differ
diff --git a/doc/source/images/administrator/flux/flux_url_getcapabilities.png b/doc/source/images/administrator/flux/flux_url_getcapabilities.png
new file mode 100644
index 0000000000000000000000000000000000000000..85eacc2635a8da2f97b1fc1ad48fd1c4b39aedfd
Binary files /dev/null and b/doc/source/images/administrator/flux/flux_url_getcapabilities.png differ
diff --git a/doc/source/images/administrator/flux/generation_flux.png b/doc/source/images/administrator/flux/generation_flux.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b2d1b8ed5d3368e337860539fa66c546c5064b1
Binary files /dev/null and b/doc/source/images/administrator/flux/generation_flux.png differ
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
Binary files /dev/null and b/doc/source/images/administrator/flux/publication.png differ
diff --git a/doc/source/images/administrator/flux/symbologie_publication.png b/doc/source/images/administrator/flux/symbologie_publication.png
new file mode 100644
index 0000000000000000000000000000000000000000..9483e42fe8253b8dbbf13a78e05852191b787141
Binary files /dev/null and b/doc/source/images/administrator/flux/symbologie_publication.png differ
diff --git a/doc/source/images/administrator/impressions/ajouter_outil_impression_dans_la_carte.png b/doc/source/images/administrator/impressions/ajouter_outil_impression_dans_la_carte.png
new file mode 100644
index 0000000000000000000000000000000000000000..82b4e1d0131310e0d3d732402a50259b047f99e7
Binary files /dev/null and b/doc/source/images/administrator/impressions/ajouter_outil_impression_dans_la_carte.png differ
diff --git a/doc/source/images/administrator/impressions/echelles.png b/doc/source/images/administrator/impressions/echelles.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed1194af82b961e2f031af73fb96120d764da474
Binary files /dev/null and b/doc/source/images/administrator/impressions/echelles.png differ
diff --git a/doc/source/images/administrator/impressions/exemple-boucle-map-legende.png b/doc/source/images/administrator/impressions/exemple-boucle-map-legende.png
new file mode 100644
index 0000000000000000000000000000000000000000..140940eee74988c89db7818108aa12b4152d985d
Binary files /dev/null and b/doc/source/images/administrator/impressions/exemple-boucle-map-legende.png differ
diff --git a/doc/source/images/administrator/impressions/html_logo.png b/doc/source/images/administrator/impressions/html_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..839b0dfc8f8ca290c51230859ea2308b3bd8e4a3
Binary files /dev/null and b/doc/source/images/administrator/impressions/html_logo.png differ
diff --git a/doc/source/images/administrator/impressions/icon_outil_impression.png b/doc/source/images/administrator/impressions/icon_outil_impression.png
new file mode 100644
index 0000000000000000000000000000000000000000..c60eee4a71722bb2ac528e84210a602cff8b3b2b
Binary files /dev/null and b/doc/source/images/administrator/impressions/icon_outil_impression.png differ
diff --git a/doc/source/images/administrator/impressions/mode_impressions.png b/doc/source/images/administrator/impressions/mode_impressions.png
new file mode 100644
index 0000000000000000000000000000000000000000..858d6ec60fb3d50217f03691cc3719204c4840a0
Binary files /dev/null and b/doc/source/images/administrator/impressions/mode_impressions.png differ
diff --git a/doc/source/images/administrator/impressions/selection_du_style_des_impressions.png b/doc/source/images/administrator/impressions/selection_du_style_des_impressions.png
new file mode 100644
index 0000000000000000000000000000000000000000..b98415fd7b89954ac61e99aae6e6acba467e6818
Binary files /dev/null and b/doc/source/images/administrator/impressions/selection_du_style_des_impressions.png differ
diff --git a/doc/source/images/administrator/rapports/rapport_objet.png b/doc/source/images/administrator/rapports/rapport_objet.png
new file mode 100644
index 0000000000000000000000000000000000000000..f67594ae03c14fcf0e409a2ae2d5406249f5e99e
Binary files /dev/null and b/doc/source/images/administrator/rapports/rapport_objet.png differ
diff --git a/doc/source/images/administrator/rapports/rapport_parametres.png b/doc/source/images/administrator/rapports/rapport_parametres.png
new file mode 100644
index 0000000000000000000000000000000000000000..29da887caf3503f0a4f64bedc3998cb4e11cfc40
Binary files /dev/null and b/doc/source/images/administrator/rapports/rapport_parametres.png differ
diff --git a/doc/source/images/administrator/rapports/rapport_requeteur.png b/doc/source/images/administrator/rapports/rapport_requeteur.png
new file mode 100644
index 0000000000000000000000000000000000000000..e12ace5bd3684ddcc0c14114dfc125593653dc8b
Binary files /dev/null and b/doc/source/images/administrator/rapports/rapport_requeteur.png differ
diff --git a/doc/source/images/administrator/rapports/rapport_routes.png b/doc/source/images/administrator/rapports/rapport_routes.png
new file mode 100644
index 0000000000000000000000000000000000000000..1358f4cdbfbcd750f5ba85f3f90ad0c47b4e650d
Binary files /dev/null and b/doc/source/images/administrator/rapports/rapport_routes.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/add_modify_token_form.png b/doc/source/images/administrator/rights/auth_token/add_modify_token_form.png
new file mode 100644
index 0000000000000000000000000000000000000000..efdbdb46a331149fd27b60d6230043aa0597aadd
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/add_modify_token_form.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/ajout_jeton.png b/doc/source/images/administrator/rights/auth_token/ajout_jeton.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d760d04d92e092d8f2833b33fe6324c11cc576
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/ajout_jeton.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/ajout_widget.png b/doc/source/images/administrator/rights/auth_token/ajout_widget.png
new file mode 100644
index 0000000000000000000000000000000000000000..55e53fc3e28a6ff1ab6333a99bcab32414d53438
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/ajout_widget.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/auth_token_api.png b/doc/source/images/administrator/rights/auth_token/auth_token_api.png
new file mode 100644
index 0000000000000000000000000000000000000000..682a6859316b41189b9572801f465b1f9752bce6
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/auth_token_api.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/auth_token_jeton.png b/doc/source/images/administrator/rights/auth_token/auth_token_jeton.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cf32ec04c5cc6859cefa9077a67aa5534c57f41
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/auth_token_jeton.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/carte_appel_externe.png b/doc/source/images/administrator/rights/auth_token/carte_appel_externe.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7de07c9d760401c0eb726a5e380acd8da10da60
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/carte_appel_externe.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/carte_datagrid.png b/doc/source/images/administrator/rights/auth_token/carte_datagrid.png
new file mode 100644
index 0000000000000000000000000000000000000000..f592d2ee1c6ba079d55dee4289f32fbf530c9bd4
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/carte_datagrid.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/id_jeton.png b/doc/source/images/administrator/rights/auth_token/id_jeton.png
new file mode 100644
index 0000000000000000000000000000000000000000..40e7222311533ad383f3492b47ca9a9aa6f239f1
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/id_jeton.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/jeton_connexion_public.png b/doc/source/images/administrator/rights/auth_token/jeton_connexion_public.png
new file mode 100644
index 0000000000000000000000000000000000000000..58cfdf247bcd1a49bae0692644f59c7c57a35f11
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/jeton_connexion_public.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/mode_publique.png b/doc/source/images/administrator/rights/auth_token/mode_publique.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e35680fcf091eb82820424d9c03507d70155254
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/mode_publique.png differ
diff --git a/doc/source/images/administrator/rights/auth_token/url_widget.png b/doc/source/images/administrator/rights/auth_token/url_widget.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d586b7f2aebe68829ab8856b9e85531e11b0b4b
Binary files /dev/null and b/doc/source/images/administrator/rights/auth_token/url_widget.png differ
diff --git a/doc/source/images/administrator/rights/data/ajout_droit.png b/doc/source/images/administrator/rights/data/ajout_droit.png
new file mode 100644
index 0000000000000000000000000000000000000000..cee1552e2cbab0de905181c3335fb0a4f40d4f77
Binary files /dev/null and b/doc/source/images/administrator/rights/data/ajout_droit.png differ
diff --git a/doc/source/images/administrator/rights/data/connexion_base.png b/doc/source/images/administrator/rights/data/connexion_base.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e7ef66ee6ec41fd875b5e004ced8bdf01c0b936
Binary files /dev/null and b/doc/source/images/administrator/rights/data/connexion_base.png differ
diff --git a/doc/source/images/administrator/rights/data/onglet_securite.png b/doc/source/images/administrator/rights/data/onglet_securite.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c658999f22a6a63f1e777b267c72424948df1a9
Binary files /dev/null and b/doc/source/images/administrator/rights/data/onglet_securite.png differ
diff --git a/doc/source/images/administrator/rights/data/privilege_gestion_droits.png b/doc/source/images/administrator/rights/data/privilege_gestion_droits.png
new file mode 100644
index 0000000000000000000000000000000000000000..8641f6156f00b8ba8d0171cdb3530215be9886f2
Binary files /dev/null and b/doc/source/images/administrator/rights/data/privilege_gestion_droits.png differ
diff --git a/doc/source/images/administrator/rights/data/query_tool.png b/doc/source/images/administrator/rights/data/query_tool.png
new file mode 100644
index 0000000000000000000000000000000000000000..44c4d08b8a7463358b24fb2e2e511cd3835c2e66
Binary files /dev/null and b/doc/source/images/administrator/rights/data/query_tool.png differ
diff --git a/doc/source/images/administrator/rights/data/table_menu_lateral.png b/doc/source/images/administrator/rights/data/table_menu_lateral.png
new file mode 100644
index 0000000000000000000000000000000000000000..b67637c020c5cd2efac29fb4aaaa49e1a744ead7
Binary files /dev/null and b/doc/source/images/administrator/rights/data/table_menu_lateral.png differ
diff --git a/doc/source/images/administrator/rights/group/ad_ldap_sync.png b/doc/source/images/administrator/rights/group/ad_ldap_sync.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2387207d05724340598b518868514f762071a2a
Binary files /dev/null and b/doc/source/images/administrator/rights/group/ad_ldap_sync.png differ
diff --git a/doc/source/images/administrator/rights/group/add_group_vitis.png b/doc/source/images/administrator/rights/group/add_group_vitis.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1eb6ad67a0851db038e121e1edc7512f10af806
Binary files /dev/null and b/doc/source/images/administrator/rights/group/add_group_vitis.png differ
diff --git a/doc/source/images/administrator/rights/group/edit_ad_ldap.png b/doc/source/images/administrator/rights/group/edit_ad_ldap.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a08a242096d83ae3f275e8cf98bb00728ba44f2
Binary files /dev/null and b/doc/source/images/administrator/rights/group/edit_ad_ldap.png differ
diff --git a/doc/source/images/administrator/rights/group/groupe_carte.png b/doc/source/images/administrator/rights/group/groupe_carte.png
new file mode 100644
index 0000000000000000000000000000000000000000..93b25f9b77ab10866d78277923f492151ae7e9ce
Binary files /dev/null and b/doc/source/images/administrator/rights/group/groupe_carte.png differ
diff --git a/doc/source/images/administrator/rights/group/groupe_modele_impression.png b/doc/source/images/administrator/rights/group/groupe_modele_impression.png
new file mode 100644
index 0000000000000000000000000000000000000000..3646324b1f4c1f7035bca9aaad9c5b28d303b438
Binary files /dev/null and b/doc/source/images/administrator/rights/group/groupe_modele_impression.png differ
diff --git a/doc/source/images/administrator/rights/group/import_ad_ldap.png b/doc/source/images/administrator/rights/group/import_ad_ldap.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5b8e3d1bfc895b2fb65acd394ff50a72f47a675
Binary files /dev/null and b/doc/source/images/administrator/rights/group/import_ad_ldap.png differ
diff --git a/doc/source/images/administrator/rights/group/insert_add_group_vitis.png b/doc/source/images/administrator/rights/group/insert_add_group_vitis.png
new file mode 100644
index 0000000000000000000000000000000000000000..c39e29e0d8c63fa86a06d8a6964f569d463b7529
Binary files /dev/null and b/doc/source/images/administrator/rights/group/insert_add_group_vitis.png differ
diff --git a/doc/source/images/administrator/rights/privileges/form_privileges.png b/doc/source/images/administrator/rights/privileges/form_privileges.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9f94481c24bb4c3ddf521c822349438e7e6ae16
Binary files /dev/null and b/doc/source/images/administrator/rights/privileges/form_privileges.png differ
diff --git a/doc/source/images/administrator/rights/privileges/form_users_privilege.png b/doc/source/images/administrator/rights/privileges/form_users_privilege.png
new file mode 100644
index 0000000000000000000000000000000000000000..55a9dd0d9da73034ad4cf4e48b4c767f6a3b84a3
Binary files /dev/null and b/doc/source/images/administrator/rights/privileges/form_users_privilege.png differ
diff --git a/doc/source/images/administrator/rights/privileges/interface_privileges.png b/doc/source/images/administrator/rights/privileges/interface_privileges.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8365bc32feba10ace6ecf25de233c96e312b619
Binary files /dev/null and b/doc/source/images/administrator/rights/privileges/interface_privileges.png differ
diff --git a/doc/source/images/administrator/rights/privileges/interface_users.png b/doc/source/images/administrator/rights/privileges/interface_users.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6bd7d540a4f7d4df65164e11ee17d6df8411149
Binary files /dev/null and b/doc/source/images/administrator/rights/privileges/interface_users.png differ
diff --git a/doc/source/images/administrator/rights/privileges/privileges_gestion.png b/doc/source/images/administrator/rights/privileges/privileges_gestion.png
new file mode 100644
index 0000000000000000000000000000000000000000..a93ed56288ec228a4ebf7f24205f41a07d14876d
Binary files /dev/null and b/doc/source/images/administrator/rights/privileges/privileges_gestion.png differ
diff --git a/doc/source/images/administrator/rights/restriction/code_sql_vue.png b/doc/source/images/administrator/rights/restriction/code_sql_vue.png
new file mode 100644
index 0000000000000000000000000000000000000000..818a503290f82d98b74586810cb6d02f3d322690
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/code_sql_vue.png differ
diff --git a/doc/source/images/administrator/rights/restriction/creer_vues.png b/doc/source/images/administrator/rights/restriction/creer_vues.png
new file mode 100644
index 0000000000000000000000000000000000000000..4258b1254daa765385b1a3451ba91b96d3607a17
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/creer_vues.png differ
diff --git a/doc/source/images/administrator/rights/restriction/filtre_fonctionnel.png b/doc/source/images/administrator/rights/restriction/filtre_fonctionnel.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1dd709c2618e1da8c88654b85a19a519f7dff4e
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/filtre_fonctionnel.png differ
diff --git a/doc/source/images/administrator/rights/restriction/restriction_cadastre_avec.png b/doc/source/images/administrator/rights/restriction/restriction_cadastre_avec.png
new file mode 100644
index 0000000000000000000000000000000000000000..b47b79e400f6f94d9d69e29c07379f60ae54fd08
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/restriction_cadastre_avec.png differ
diff --git a/doc/source/images/administrator/rights/restriction/restriction_cadastre_sans.png b/doc/source/images/administrator/rights/restriction/restriction_cadastre_sans.png
new file mode 100644
index 0000000000000000000000000000000000000000..970e8a95c10741865c325d5d43ff253dc1c233c8
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/restriction_cadastre_sans.png differ
diff --git a/doc/source/images/administrator/rights/restriction/restriction_modify_user.png b/doc/source/images/administrator/rights/restriction/restriction_modify_user.png
new file mode 100644
index 0000000000000000000000000000000000000000..e81f75e3df5cbce4adb03abac0057befae3c8f26
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/restriction_modify_user.png differ
diff --git a/doc/source/images/administrator/rights/restriction/table_villes.png b/doc/source/images/administrator/rights/restriction/table_villes.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd0f2d02379e16cd12dda49e2bd12fe67f033fd2
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/table_villes.png differ
diff --git a/doc/source/images/administrator/rights/restriction/user_datagrid.png b/doc/source/images/administrator/rights/restriction/user_datagrid.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b00557f06b6396d4242e3e2cf4fdf72c8614287
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/user_datagrid.png differ
diff --git a/doc/source/images/administrator/rights/restriction/view_onglet_code.png b/doc/source/images/administrator/rights/restriction/view_onglet_code.png
new file mode 100644
index 0000000000000000000000000000000000000000..157c156f6756c3c8fc4e6733be6b488544faca6d
Binary files /dev/null and b/doc/source/images/administrator/rights/restriction/view_onglet_code.png differ
diff --git a/doc/source/images/installation/lancement_exe.jpg b/doc/source/images/installation/lancement_exe.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c1f78da7e850afd7f65d073328af69e9a06e8f75
Binary files /dev/null and b/doc/source/images/installation/lancement_exe.jpg differ
diff --git a/doc/source/installation/installation.md b/doc/source/installation/installation.md
index 91c6122f1f2fc4df750b5a4bb01430e90f2cdd29..1f9208295ec0242674d897bbbec261c696bf2af1 100644
--- a/doc/source/installation/installation.md
+++ b/doc/source/installation/installation.md
@@ -20,11 +20,11 @@ Les variables à modifier pour l’installation sont :
 +-----------------------+--------------------------------------------------------------------------------------------------------+
 | Variable              |     Description                                                                                        |
 +=======================+========================================================================================================+
-|   API_ALIAS           | Alias pour accéder à l'API de vMap2 (par défaut : /rest)                                                |
+|   API_ALIAS           | Alias pour accéder à l'API de vMap2 (par défaut : /rest)                                               |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
-|   APP_ALIAS           | Alias pour accéder au client de vMap2 (par défaut : /vmap)                                              |
+|   APP_ALIAS           | Alias pour accéder au client de vMap2 (par défaut : /vmap)                                             |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
-|   WMS_ALIAS           | Alias pour accéder au Mapserver de vMap2 (par défaut : /mws)                                            |
+|   WMS_ALIAS           | Alias pour accéder au Mapserver de vMap2 (par défaut : /mws)                                           |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
 |   HTTPSERVER_PATH     | Chemin jusqu'au répertoire d'Apache24 (C:/.../Apache24/conf pour Windows et /etc/apache2 pour linux)   |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
@@ -40,13 +40,82 @@ Les variables à modifier pour l’installation sont :
 +-----------------------+--------------------------------------------------------------------------------------------------------+
 |   POSTGRES_PASSWORD   | Mot de passe du compte superutilisateur                                                                |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
-|   SRID                | Système de projection du modèles de données du module Cadastre (par défaut : 2154)                     |
+|   SRID                | Système de projection du modèle de données du module Cadastre (par défaut : 2154)                     |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
-|   WMS_ALIAS           | Alias pour accéder au service WMS (par défaut : /wms)                                                   |
+|   WMS_ALIAS           | Alias pour accéder au service WMS (par défaut : /wms)                                                  |
 +-----------------------+--------------------------------------------------------------------------------------------------------+
 
 ```
 
+```{warning}
+Les valeurs par défaut du `dependencies.json` peuvent être différents des exemples ci-dessous en fonction du système d'exploitation (Linux ou Windows).
+```
+
+Au niveau du fichier `dependencies.json`, ces trois paramètres sont suceptibles de nécessiter une adaptation en fonction de vos alias Apache (par défaut, ceux-ci sont corrects) :  
+
+```js
+{
+  "API_ALIAS": "/rest",
+  "APP_ALIAS": "/vmap",
+  ...
+  "WMS_ALIAS": "/wms",
+  ...
+}
+```
+
+Les clés, dans l'ordre, correspondent aux informations suivantes :  
+
+- `API_ALIAS` : **Alias apache vers l'API.**
+- `APP_ALIAS` : **Alias apache vers l'application/client Angular.**
+- `WMS_ALIAS` : **Alias vers le service des flux WMS (Mapserver).**
+
+Il faut également adapter les chemins d'installation et le hostname de la machine :  
+
+```js
+{
+  ...
+  "HOSTNAME": "",
+  "HTTPSERVER_PATH": "/etc/apache2",
+  "INSTALL_PATH": "/var/www/vmap",
+  ...
+}
+```
+
+Les clés, dans l'ordre, correspondent aux informations suivantes :  
+
+- `HOSTNAME` : **Nom de la machine.**
+- `HTTPSERVER_PATH` : **Lien vers le dossier d'Appache.**
+- `INSTALL_PATH` : **Répertoire d'installation de vMap.**
+
+Ainsi que les informations du serveur Postgres, et de la base de données vMap :  
+
+```js
+{
+  ...
+  "POSTGRES_DB": "vmap",
+  "POSTGRES_HOST": "dbhost",
+  "POSTGRES_PASSWORD": "dbpasswd",
+  "POSTGRES_PORT": 5432,
+  "POSTGRES_USER": "dbuser",
+  "SQL_DATA": {
+    "DB_NAME": "vmap",
+    "SRID": 2154
+  },
+  ...
+}
+```
+
+Les clés, dans l'ordre, correspondent aux informations suivantes :  
+
+- `POSTGRES_DB` : **Base de données de l'application.**
+- `POSTGRES_HOST` : **IP/Nom DNS du serveur Postgres.**
+- `POSTGRES_PASSWORD` : **Mot de passe de l'utilisateur Postgres.**
+- `POSTGRES_PORT` : **Port de l'application Postgres sur le serveur.**
+- `POSTGRES_USER` : **Nom d'utilisateur de l'utilisateur Postgres.**
+- `SQL_DATA` : **Objet contenant les variables pour les requêtes SQL d'installation.**
+- `SQL_DATA -> DB_NAME` : **Nom de la base de données de l'application.**
+- `SQL_DATA -> SRID` : **Système de projection de la base.**
+
 Dans la section **application** (tout en bas du fichier *dependencies.json*) il est possible de définir les utilisateurs qui seront créés lors de l'installation de vMap2 ainsi que leurs droits. Cela est défini dans le tableau **users**.
 Dans l'exemple ci-dessous, un utilisateur admin (et son mot de passe mdpadmin) sera créé avec les provilèges vitis_user et vitis_admin.
 
@@ -90,6 +159,31 @@ L’installateur de vMap2 assure les opérations suivantes :
 - Création d’un compte administrateur dans PostgreSQL
 - Nettoyage des caches
 
+### Lancement de l'installeur sous Linux
+
+Pour lancer l'installation de vMap via le VAI sous Linux, il faut exécuter les commandes suivantes :  
+
+```{warning}
+Le chemin dans la commande ci-dessous est à adapter.  
+Le sudo n'est également peut-être pas nécessaire en fonction de votre configuration.  
+```
+
+```bash
+sudo chmod +x <chemin jusqu'au zip>/vmap/installer
+sudo ./<chemin jusqu'au zip>/installer
+```
+
+### Lancement de l'installeur sous Windows
+
+Pour lancer l'installeur sous Windows, cliquer sur le fichier .exe suffit :  
+
+![lancement_exe](../images/installation/lancement_exe.jpg)
+
+Il est également possible de le lancer en ligne de commande via le chemin du fichier exe en ligne de commande :  
+
+```batch
+<chemin de l'exe>/installer.exe
+```
 
 Pour les distributions Linux exécuter les commandes suivantes une fois que l'installeur a été lancé :