Centiloc Service Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Limitation d’Accès

Cette section décrit les différents mécanismes permettant de limiter et personnaliser l’accès utilisateur au sein de la plateforme Centiloc.

Ces mécanismes permettent aux administrateurs de :

  • Restreindre l’accès à certaines données (basé sur les labels)
  • Contrôler les fonctionnalités visibles dans les applications web (enrolui, dataui)

Toutes les configurations sont réalisées via des attributs de groupe dans Keycloak.


1. Limitation d’accès aux données (Labels)

Comme décrit dans Limiter l’accès utilisateur, il est possible de restreindre les données accessibles par un utilisateur en fonction des labels.

Le principe est simple :

  • Un groupe peut définir un attribut :
    • clé : labels
    • valeur : une expression de filtre sur les labels
  • Les utilisateurs appartenant à ce groupe ne verront que les objets correspondant à ce filtre

Cela s’applique à tous les objets portant des labels, notamment :

  • items
  • boards
  • products
  • (bientôt) boxes et autres ressources

1.1. Filtrage simple par label

L’usage le plus simple consiste à définir une valeur de label unique.

Exemple :

labels = "site::paris"

Cette configuration signifie :

L’utilisateur ne verra que les objets contenant le label site::paris

Cette syntaxe correspond à une recherche de type “contient”.

Une valeur simple comme foo::bar est interprétée comme “contient foo::bar”.

1.2. Expressions logiques avancées

Pour des cas d’usage plus avancés, l’attribut labels supporte des expressions logiques.

Cela permet de combiner plusieurs conditions à l’aide d’opérateurs logiques.

Opérateurs logiques

Symbole Signification
& ET
| OU
! NON

Parenthèses

Les parenthèses ( et ) permettent de regrouper des sous-expressions.

Guillemets

Les guillemets " permettent de définir les limites d’un label.

Ancres

Les ancres (^ et $) permettent de définir le type de correspondance :

Syntaxe Signification
"foo" contient foo
^"foo" commence par foo
"foo"$ se termine par foo
^"foo"$ correspond exactement à foo

Exemple

(^"site::cholet" | ^"site::nantes"$) & !"secret"

Cette expression signifie :

  • commence par site::cholet
  • OU est exactement site::nantes
  • ET ne contient pas secret

Règles

  • les labels doivent être entre guillemets lorsqu’ils sont utilisés avec des opérateurs
  • ^ doit être placé immédiatement avant un label entre guillemets
  • $ doit être placé immédiatement après un label entre guillemets
  • un label ne peut pas contenir "
La logique de filtrage est identique à celle utilisée dans les filtres des objets.

2. Visibilité des fonctionnalités (Contrôle UI)

En complément du filtrage des données, il est possible de masquer certaines fonctionnalités dans les applications web.

Cela se fait via les attributs de groupe suivants :

  • enrolui.hide
  • dataui.hide

Ces attributs contrôlent la visibilité des tuiles (fonctionnalités) dans l’interface.


2.1. Visibilité dans Enrolui

L’attribut enrolui.hide permet de masquer certaines tuiles dans enrolui.

Valeurs possibles :

Valeur Fonctionnalité masquée
product Tuile Product
dpp Tuile DPP
build Tuiles Furniture, Shelf et Location
enrol Tuile Enrolment / Configure UID

2.2. Visibilité dans Dataui

L’attribut dataui.hide permet de masquer certaines tuiles dans dataui.

Valeurs possibles :

Valeur Fonctionnalité masquée
inventory Tuile Inventory
product Tuile Production
tracking Page Tracking
map Page Geomap

2.3. Valeurs multiples

Il est possible de masquer plusieurs fonctionnalités en séparant les valeurs avec un ;.

Exemple

enrolui.hide = "product;dpp;build"
dataui.hide  = "tracking;map"

Avec cette configuration :

  • Dans enrolui, l’utilisateur ne verra que :

    • Configure UID
  • Dans dataui, l’utilisateur ne verra que :

    • Inventory
    • Production

Toutes les autres tuiles seront masquées.


Ce mécanisme vise à simplifier l’expérience utilisateur et à limiter l’accès aux fonctionnalités.

Cependant, il ne constitue pas une barrière de sécurité à lui seul. Il doit toujours être combiné avec une configuration correcte des rôles et des accès aux données.


3. Bonnes pratiques

  • Utilisez les groupes pour gérer les accès, plutôt que les utilisateurs individuellement

  • Combinez :

    • le filtrage par labels (restriction des données)
    • le masquage UI (restriction des fonctionnalités)
  • Gardez des configurations simples et explicites

  • Évitez les hiérarchies de groupes complexes lorsque vous utilisez des labels