diff --git a/conf/properties.json b/conf/properties.json index bca2503a8cddb292594aec07be7a03ef700ee2dc..943c15836208da648ac4d6e97b03d0f3f445a8d1 100644 --- a/conf/properties.json +++ b/conf/properties.json @@ -1,6 +1,6 @@ { - "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", diff --git a/doc/source/administrator/rights/auth_token.md b/doc/source/administrator/rights/auth_token.md index 9ac4e1b158ae5945e70b4c6f991ddb01122b069a..4028aad056f68ca313c65f10aef56ed7891d2cfa 100644 --- a/doc/source/administrator/rights/auth_token.md +++ b/doc/source/administrator/rights/auth_token.md @@ -1 +1,90 @@ -# Gestion des jetons de connexion \ No newline at end of file +# 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. + + + +Il suffit ensuite de remplir les différents champs du formulaire pour créer le token : + + + +## 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 : + + + +Il est ensuite possible d'obtenir un token d'authentification en requêtant la route `vitis/privatetoken` avec le jeton dans l'header `Authorization` : + + + +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 : + + + +### 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". + + + +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 : + + + +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. + + + +Une fois le formulaire validé, le code pour intégrer la carte est disponible dans une nouvelle fenêtre dans le formulaire : + + \ No newline at end of file diff --git a/doc/source/administrator/rights/group.md b/doc/source/administrator/rights/group.md index 5e3ff3e1c38c2e0b1a6bf76b66561edb581c2469..93575897ebe03cc64e1e4fb1f0e6e4f6543a5c1c 100644 --- a/doc/source/administrator/rights/group.md +++ b/doc/source/administrator/rights/group.md @@ -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 : -  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". -  @@ -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](#). ``` -  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". -  :::{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". -  ::: diff --git a/doc/source/administrator/rights/restriction.md b/doc/source/administrator/rights/restriction.md index 2c1f7eb5748caaa55ec58d2651f404b2fffdfbcb..3577ee16ed2e48a31cbb9a6ebfe73be6531e3792 100644 --- a/doc/source/administrator/rights/restriction.md +++ b/doc/source/administrator/rights/restriction.md @@ -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. + + + +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. + + + +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 : + + + +Je crée donc ensuite une vue, en cliquant droit sur "views" > "Create" > "View..." + + + +Il faut rentrer un nom, puis ensuite se rendre dans l'onglet "code" : + + + +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); +``` + + + +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 : + + + + +## 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. + + + +Une fois la restriction en place (pour celle-ci, `661316|66210`), seules les communes filtrées sont accesibles à l'utilisateur. + + 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/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/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