[RESOLU] Une idée pratique pour gérer des droits distincts ?

Eléphant du PHP | 66 Messages

09 juin 2018, 09:54

Bonjour,

Je suis en train de mettre en place un système de droits qu'une personne donnera à des employés. Sur ce, c'est pas compliqué en soit, toutefois, j'essaye de trouver la meilleure façon d'insérer ces droits en base de données et donc de les traiter.

2 idées en tête :
1- je crée une entrée par droit avec une valeur à 1 ou 0 dans une table 'droits', avec bien sur, l'id du personnel concerné et le nom du droit d acces à associer. En faisant un WHILE sur l'id du personnel concerné, je récupère chaque valeur que je place en $_SESSION[$droit], etc ..
2- je crée une entrée par personnel, dans lequel je mets simplement une valeur droits de type 'varchar' 0|1|1|0|0|1|0|1, et en faisant un explode sur '|', je récupère chaque état bien défini à l'avance. Sachant à quel droit j'associe telle valeur $_SESSION[$droit].

Malgré ces 2 possibilités, j'imagine que je ne suis pas le seul à mettre en place des droits pour des utilisateurs. J'aurais voulu savoir si vous avez une méthode plus simple/pratique/fonctionnelle ?

Merci encore et toujours de votre aide.
Stéphane

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7697 Messages

09 juin 2018, 10:20

Bonjour,

En général, une bonne pratique est de définir des rôles (admin, modérateur, éditeur, contributeur...) et d'assigner un rôle à chaque utilisateur.
Chaque rôle ayant des permissions différentes.

L'avantage de passer par ce principe de rôle est de simplifier la gestion des droits en la rendant + lisible, ce qui au final permet d’améliorer la sécurité.


Par ailleurs, je te déconseille fortement de faire une variable avec 1|0|1|0|1|1 pour gérer les droits où en fonction de la position ça dit vrai ou faux car pour se souvenir de quel est le droit à la 5ème position, tu vas être obligé de relire ta doc.
Fait plutôt un json stocké dans la BDD avec des labels explicites (les fonctions json_encode/decode sont tes amies), ça va te faciliter la vie le jour où tu veux faire évoluer ton modèle de droit ou même simplement relire ton code pour vérifier que les permissions sont bien appliquées :D
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 66 Messages

15 juin 2018, 00:47

Oups, j'ai oublié de te remercier, et de prendre le temps de cloturer le sujet ! :)

Merci encore !!