Skip to content
Snippets Groups Projects
Commit 78abfc28 authored by Kyllian Beasse's avatar Kyllian Beasse :blush:
Browse files

FInalisation de la documentation

parent e89453fa
No related branches found
No related tags found
No related merge requests found
Showing
with 174 additions and 9 deletions
{
"app_api_url": "https://[hostname]:8000/v2",
"proxy_url": "https://[hostname]:8000/v2/proxy/proxy",
"app_api_url": "https://[hostname]/rest/v2",
"proxy_url": "https://[hostname]/rest/v2/proxy/proxy",
"smallscreen_limit": 900,
"version": "2022.00.01",
"build": "29192",
......
# Gestion des jetons de connexion
Un jeton de connexion est une manière de permettre un accès à l'application, via le compte de la personne qui posssède le jeton, sans avoir à fournir ses identifiants.
L'avatange d'un jeton est qu'il ne donne aucune informations sur l'utilisateur à la personne, et peut être désactivé à tout moment.
## Utilité
Le jeton de connexion permet de faire tout ce que l'utilisateur lié au jeton peut faire, et est au centre de plusieurs fonctionnalités :
- Il permet l'utilisation de l'API
- Il permet d'utiliser le mode publique de vMap2, en étant connecté à l'application via cet utilisateur.
- Il permet d'utiliser les widgets.
## Création
Il est possible de créer un token dans l'interface prévue à cet effet, à l'emplacement "Utilisateurs" > "Jetons de connexion", puis de cliquer sur le bouton "Ajouter" pour un ajouter un nouveau jeton de connexion.
![ajout_jeton](../../images/administrator/rights/auth_token/ajout_jeton.png)
Il suffit ensuite de remplir les différents champs du formulaire pour créer le token :
![add_modify_token_form](../../images/administrator/rights/auth_token/add_modify_token_form.png)
## Utilisation
### Utilisation de l'API avec un jeton
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)
### Connexion au mode publique
Une autre des utilités des jetons est la mise en place du mode publique.
En effet, le mode publique nécessite un jeton de connexion afin de pouvoir connecter l'utilisateur invité à l'application.
Pour ce faire, il suffit de paramétrer deux propriétés, dont une nécessitant le jeton de connexion :
```js
{
...
"public_connect_enabled": false,
"public_connect_token": "",
...
}
```
Une fois ces informations mises en place, il est possible d'accéder à l'application sans connection de l'utilisateur.
```{figure} ../../images/administrator/rights/auth_token/mode_publique.png
:alt: mode_publique
:align: center
Exemple d'application avec le mode publique
```
### Création d'un widget carte
Dans vMap2, il est également possible de créer un widget carte qui permet d'intégrer des cartes dans d'autres sites WEB.
Pour ce faire, il est absolument nécessaire d'avoir un jeton de connexion existant.
Pour créer un widget, il Faut se rendre dans "Cartes et Couches" > "Cartes".
![carte_datagrid](../../images/administrator/rights/auth_token/carte_datagrid.png)
Il faut ensuite appuyer sur le crayon au niveau de la carte choisie, puis sur le formulaire
Une fois sur le formulaire d'édition de la carte, il faut se rendre dans le sous-menu "appel externe" et ajouter un nouvel enregistrement :
![carte_appel_externe](../../images/administrator/rights/auth_token/carte_appel_externe.png)
Une fois dans l'interface d'ajout, il suffit de remplir les différentes informations, en choisisant le bon token dans la liste déroulante.
![ajout_widget](../../images/administrator/rights/auth_token/ajout_widget.png)
Une fois le formulaire validé, le code pour intégrer la carte est disponible dans une nouvelle fenêtre dans le formulaire :
![url_widget](../../images/administrator/rights/auth_token/url_widget.png)
\ No newline at end of file
......@@ -33,11 +33,9 @@ Il existe actuellement deux manières de créer un groupe dans vMap2 :
### Création de groupe 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)
......@@ -50,22 +48,18 @@ Pour ce faire, il faut se rendre dans la section "Utilisateurs" > "Domaines" et
```{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 à interval régulier.
La synchronisation est à configurer dans la [configuration](../configuration/active_directory.md).
Il est ensuite possible d'activer ou 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)
:::
......
......@@ -4,3 +4,85 @@ Les restrictions sont un principe qui permet à un adminstrateur de restreindre
Ce principe est par exemple très utilisé au niveau des données cadastrale, afin de mettre en place des restrictions communale sur les données cadastrales, en renseignant par exemple le code INSEE d'une ou plusieurs commune, afin que l'utilisateur n'ait accès qu'aux données cadastrales nécessaires à son travail sur l'application.
## Configuration
Pour saisir une restriction, il faut se rendre sur un utilisateur, dans la section "Utilisateurs" > "Utilisateurs" du menu latéral, puis de cliquer sur le bouton en forme de crayon à côté de l'utilisateur pour lequel il faut définir les restrictions.
![user_datagrid](../../images/administrator/rights/restriction/user_datagrid.png)
Une fois dans l'interface de modifications, dans la section "Droits et restrictions", une section "restrictions" permet de définir les différentes restrictions qui seront appliqués sur les données.
![restriction_modify_user](../../images/administrator/rights/restriction/restriction_modify_user.png)
La bonne syntaxe pour la chaîne de caractères est un ensemble de chaînes de carctères, séparés par un séparateur (le charactères `|`).
Par exemple, pour des restrictions communales, la bonne syntaxe serait un ensemble de code INSEE, séparées par le caractère `|`.
```sql
66106|66125|07324
```
Une fois cela fait, la restriction est en place, il reste maintenant à voir le paramétrage côté données (donc en base de données).
## Paramétrage côté base de données
```{tip}
Les restrictions sur les données du cadastre sont déjà appliquées par défaut, étant une structure de données de Veremes.
L'ajout n'est nécessaire que dans le cas ou vous voulez appliquer la restriction à des données autres que le modèle de données du cadastre.
```
Maintenant que les restrictions sont mises en place côté utilisateur, il faut également s'assurer que la restriction est appliquée à la table, afin de bien filtrer les données retournées.
Pour ce faire, il va être nécessaire de faire une vue, avec un filtre en fonction de cette restriction.
Pour cet exemple, je vais prendre une table des villes (`data_demo_vmap`.`f_villes_f93`) constituée des colonnes suivantes :
![table_villes](../../images/administrator/rights/restriction/table_villes.png)
Je crée donc ensuite une vue, en cliquant droit sur "views" > "Create" > "View..."
![create_view](../../images/administrator/rights/restriction/creer_vues.png)
Il faut rentrer un nom, puis ensuite se rendre dans l'onglet "code" :
![view_onglet_code](../../images/administrator/rights/restriction/view_onglet_code.png)
Puis il faut ensuite rentrer le code de la vue, en ajoutant le code suivant en tant que condition `WHERE` :
```sql
WHERE [nom de la colonne] ~ similar_escape(( SELECT "user".restriction
FROM s_vitis."user"
WHERE "user".login::name = "current_user"()), NULL::text);
```
Pour ma vue, le code suivant me permet de filtrer les villes :
```sql
SELECT * FROM data_demo_vmap.f_villes_93
WHERE f_villes_93.code ~ similar_escape(( SELECT "user".restriction
FROM s_vitis."user"
WHERE "user".login::name = "current_user"()), NULL::text);
```
![code_sql_vue](../../images/administrator/rights/restriction/code_sql_vue.png)
Une fois cette vue créée, on peut voir que je ne récupère que les données filtrées par la restriction de mon utilisateur :
![filtre_fonctionnel](../../images/administrator/rights/restriction/filtre_fonctionnel.png)
## Exemple dans le module Cadastre
L'application la plus commune des restrictions est la limitation des données dans le module cadastre.
Les données du cadastre étant sensibles, il est d'usage de limiter les données retournées à l'utilisateur au strict nécessaire.
Voici un exemple avec le module cadastre sur les Pyrénées-Orientales.
Par défaut, sans restrictions, mon utilisateur a accès à la totalité des Pyrénées-Orientales.
![restriction_cadastre_sans](../../images/administrator/rights/restriction/restriction_cadastre_sans.png)
Une fois la restriction en place (pour celle-ci, `661316|66210`), seules les communes filtrées sont accesibles à l'utilisateur.
![restriction_cadastre_avec](../../images/administrator/rights/restriction/restriction_cadastre_avec.png)
doc/source/images/administrator/rights/auth_token/add_modify_token_form.png

22.9 KiB

doc/source/images/administrator/rights/auth_token/ajout_jeton.png

65.1 KiB

doc/source/images/administrator/rights/auth_token/ajout_widget.png

54 KiB

doc/source/images/administrator/rights/auth_token/auth_token_api.png

88.9 KiB

doc/source/images/administrator/rights/auth_token/auth_token_jeton.png

57.2 KiB

doc/source/images/administrator/rights/auth_token/carte_appel_externe.png

48.1 KiB

doc/source/images/administrator/rights/auth_token/carte_datagrid.png

54.5 KiB

doc/source/images/administrator/rights/auth_token/id_jeton.png

25.6 KiB

doc/source/images/administrator/rights/auth_token/mode_publique.png

2.25 MiB

doc/source/images/administrator/rights/auth_token/url_widget.png

73.4 KiB

doc/source/images/administrator/rights/restriction/code_sql_vue.png

31.9 KiB

doc/source/images/administrator/rights/restriction/creer_vues.png

18.6 KiB

doc/source/images/administrator/rights/restriction/filtre_fonctionnel.png

33.7 KiB

doc/source/images/administrator/rights/restriction/restriction_cadastre_avec.png

1.32 MiB

doc/source/images/administrator/rights/restriction/restriction_cadastre_sans.png

1.78 MiB

doc/source/images/administrator/rights/restriction/restriction_modify_user.png

28.6 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment