j'ai une application PHP MySQL utilisée par deux agences (agence 1 et agence 2) , pour cela j'ai décidé d'organiser ma base de cette façon :
quand un utilisateurs se connecte je récupère ses informations dans une variable SESSION['user'] et donc je récupère le numéro de son agence avec SESSION['user']['_agence'].
dans mon code PHP pour savoir si une agence a le droit d’accéder a une page ou faire une certaine action je suis obligé a chaque fois de faire une condition if , par exemple :
if(SESSION['user']['_agence'] == 1 )
{
// mon code .
}
probleme avec ce systeme : si je souhaite ajouter plus d'agence (agence 3 , agence 4 .... ) ca devient beaucoup plus compliquer de faire des if partout et ainsi etre obligé de modifier mon code a chaque fois
svp avez vous une idée comment je peux améliorer ce système ?
pour savoir si une agence a le droit d’accéder a une page ou faire une certaine action je suis obligé a chaque fois de faire une condition if
Ton programme ne peut rien deviner, il faut tout lui expliquer ... Donc soit tu expliques directement dans le code, comme tu es en train de le faire avec tes if, soit tu mets en place un système en base de données pour expliciter tes règles d'accès.
Si tu as des pages, cela pourrait être une table, et tu pourrais également créer des relations entre les rôles, les agences et les pages.
Par exemple :
Avec ce modèle tu stockes en base ce que chaque rôle peut faire pour chaque page et pour chaque agence ...
Côté application tu récupères en session ces droits en fonction de l'utilisateur et tu peux gérer l'affichage directement.
Là c'est un exemple, à adapter selon ce que tu cherches vraiment à faire.
1/ qu'est ce qu'on peut avoir comme valeur pour les colonnes lecture , creation , modification , suppression de la table ACCES ?
Benzouye a écrit:
Côté application tu récupères en session ces droits en fonction de l'utilisateur et tu peux gérer l'affichage directement.
2/ Après la récupération de la session qui contient le rôle de l'utilisateur et son agence est ce que je suis obligé de faire des requêtes SQL du genre:
SELECT .... where role = x and agence= y pour savoir est ce que l'utilisateur a des droits d’accès , de modifications , suppression ... ?
qu'est ce qu'on peut avoir comme valeur pour les colonnes lecture , creation , modification , suppression de la table ACCES ?
Des booléens pour dire si le droit est accordé (1) ou pas (0).
MassineBanoune a écrit:
Après la récupération de la session qui contient le rôle de l'utilisateur et son agence est ce que je suis obligé de faire des requêtes SQL
Je verrai plutôt de récupérer en session (ou à chaque chargement de page) tous les accès de l'utilisateur (selon son rôle) et de les consulter chaque fois que besoin.
banounemassine
banounemassine
banounemassine