# Contrôles d'accès
# Vérification des droits pour accéder à une route d'API
L'accès aux ressources est contrôlé par les ressources elles-même mais l'utilisation de l'API est aussi contrôlée de
manière générale par l'application HTTPAPI
.
Cette application définie 4 droits (ACL
) qui autorisent l'utilisation des méthodes sur les ressources/collections:
PUT
,POST
,GET
,DELETE
.
Ces droits s'appliquent de manière globale sur toute l'API quelque soit la ressource/collection concernée. Si un
utilisateur ne possède pas le droit, il ne peut pas effectuer de demande de ce type.
L'accès aux routes est contrôlé si la configuration de la route indique un droit spécifique.
# Vérification des droits pour accéder à un Smart Element
La consultation des Smart Element est contrôlée par les profils de Smart Elements.
Le contrôle d'accès au Smart Element est fait par les interfaces de haut-niveau. La classe SEManager
et notamment la
fonction createDocument()
ne vérifie pas les accès. Ces vérifications doivent être fait avec la méthode
SmartElement::hasPermission()
.
Le schéma suivant décrit les contrôles d'accès à la route d'API et précise la cinématique d'accès à un Smart Element.
# Vérification des droits pour télécharger un fichier d'un Smart Element
Le fichier physique enregistré dans le coffre n'est pas accessible directement. L'accès aux répertoires des coffres est
contrôlé par le serveur web qui interdit leur accès (fichier .htaccess
).
Certains fichiers peuvent être en accès libre. cela concerne notamment les icônes personnalisées des Smart Structures,
dossiers et recherches.
# Smart Element confidentiels
Un Smart Element confidentiel est un Smart Element dont l'affichage est soumis à un droit spécifique : le droit
confidential
.
La propriété confidential
indique le caractère confidentiel d'un Smart Element. S'il est est supérieur à zéro, le
Smart Element est considéré comme confidentiel.
Les interfaces d'affichage standards de Smart Element prennent en compte cette propriété afin d'indiquer que le Smart
Element est confidentiel et ne montre pas son contenu.
Les interfaces standards d'affichage de liste de Smart Element n'affichent pas les Smart Elements confidentiels.
Pour afficher un Smart Element confidentiel, il faut que l'utilisateur dispose du droit view
et du droit
confidential
.
Attention
La classe SearchElements
de recherche de Smart Element retourne par défaut les Smart Elements confidentiels. Il faut
explicitement utiliser la méthode SearchSmartData::excludeConfidential()
pour les filtrer. Dans le cas contraire, le
développeur a en charge de montrer que les parties voulues sur l'interface cliente.