Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conception de base de données

droit utilisateur en fonction de leur équipe

Sujet résolu
25 mai 2021 à 16:41:25

Bonjour ,

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 ?

Merci par avance .

  • Partager sur Facebook
  • Partager sur Twitter

banounemassine

25 mai 2021 à 16:56:57

Bonjour,

MassineBanoune a écrit:

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.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
26 mai 2021 à 11:18:16

Bonjour Benzouye

D'abord merci beaucoup pour ta réponse

Par ailleurs j'ai deux questions : 

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 ... ?

-
Edité par Massi.dev 26 mai 2021 à 11:18:39

  • Partager sur Facebook
  • Partager sur Twitter

banounemassine

26 mai 2021 à 11:55:25

MassineBanoune a écrit:

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.

-
Edité par Benzouye 26 mai 2021 à 11:55:58

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
26 mai 2021 à 16:51:40

Super , merci pour tes réponses  Benzouye :) .

  • Partager sur Facebook
  • Partager sur Twitter

banounemassine