Aller au contenu principal
Version: Current 🚀

Rôles, Fonctions et Menus

Les fonctions

Une fonction correspond à l'ensemble des fonctionnalités d'une "page". Elles sont utilisables côté React et côté Spring.

URLs

À chaque fonction, on peut associer une ou plusieurs URL(s).

Les rôles

Les rôles sont donnés aux utilisateurs. Chaque utilisateur peut avoir plusieurs rôles. À chaque rôle, on associe les fonctions souhaitées.

Les menus

Un menu correspond à une série d'entrée de menu. Il possède un code qui est utilisable dans le composant React qui va avec le menu. C'est ce code que le composant utilise quand il demande le contenu du menu au Controller Spring.

Les entrées de menu

Il y a 4 types d'entrée de menu :

  1. fonction : reliée à la table is_fonction ;
  2. lien : contenant une simple url ;
  3. texte ;
  4. divider : pour faire des séparations.

Une entrée de menu peut contenir une entrée de menu (ou plus exactement, une entrée de menu peut avoir une entrée de menu en parent grâce à la colonne id_parent de la table).

c'est là qu'on déclare un menu (au sens utilisable dans le code React ou en tout cas, servi par un controller à partir d'un user)

Spring

Les controllers

  • Un controller de menu qui nous donne les éléments auxquels a droit un utilisateur à partir du code de menu : GET sur /api/admin/menu/{code}.
  • Un controller de fonction qui permet de savoir si une URL est autorisée pour un User : POST sur /api/admin/function avec le path à tester en body. À noter : on teste les paths dans l'ordre, /outils/empreinte/listeProjets Je vais vérifier les droits dans l'ordre suivant :
    • /outils
    • /outils/empreinte
    • /outils/empreinteListeProjets

Que ce soit pour le menu ou les fonctions, une fonction est déclarée "autorisée" si le user a au moins un rôle qui permet d'avoir accès à la fonctionnalité ou si la fonction n'est associée à aucun rôle.

Le SQL

  • is_role : c'est là qu'on met les rôles !
  • is_asso_user_role : c'est là qu'on associe les rôles et les utilisateurs.
  • is_fonction : c'est là qu'on déclare une "fonction".
  • is_url : c'est là qu'on déclare toutes les URLs d'une fonction.
  • is_asso_fonction_role : c'est là qu'on associe les fonctions à des rôles.
  • is_menu : les menus
  • is_menu_entry : c'est là qu'on met les entrées de menu.
  • is_asso_menu_menu_entry : c'est là qu'on associe des entrées de menu et un menu avec une notion d'ordre.

React

Si on veut afficher un menu, on utilise le composant Menu auquel il faut donner le code du menu à afficher :

<IsotopeMenu code="fo" location={location} />

À noter : cela ne fonctionne que si l'utilisateur est connecté.