Besoin d'aide ?

Bonne pratique: coder route dans bdd

Avatar de michelange2008
michelange2008

Bonjour,

J'ai un projet dans lequel je veux qu'un utilisateur soit rerouté différemment en fonction d'un parametre nommé usertype_id (qui est une colonne de la bdd user) et qui est lié à une table usertypes qui contient la liste des types d'utilisateurs avec quelques éléments (icone par exemple).
Pour cela, il est possible de mettre dans la table usertypes une colonne route qui donne le nom de la route telle qu'elle est définie dans le fichier web.php. Cela donne un code très simple mais: Ma question est : est-ce une bonne pratique ? Peut-on mettre en base de donnée des éléments de programmation ? Merci de vos réponses

Avatar de KYoann
KYoann

Salut,

Pour un cas comme celui ci, j'aurais tendance à utiliser un middleware. car tu ne maitrise pas le faite que la personne récupère le lien qui correspondrait à un autre type d'utilisateur et à ce moment là, tu as une faille de sécurité.

Tu trouvera un exemple detaillé sur cette page :

https://medium.com/justlaravel/how-to-use-middleware-for-content-restriction-based-on-user-role-in-laravel-2d0d8f8e94c6

Je rajouterais aussi des Polycies Security dans les controlleurs ayant des actions en base, si tu utilise les mêmes quelque soit le type d'utilisateur.

Avatar de bestmomo
bestmomo

Salut,

Mettre un nom de route comme donnée d'un utilisateur me paraît assez éloigné de toute logique. Personnellement je mettrais un type d'utilisateur et ensuite dans le traitement de la redirection j'établirais un tableau de correspondance type d'utilisateur -> route de redirection.

Vous ne pouvez pas répondre à ce sujet.