Page 1 sur 1

Gestion de droit d'accès a un Intranet

Posté : 05 mars 2008, 20:59
par stefane321
Bonjour,

J'ai créer un intranet pour un client.

Son nombre de section de l'Intranet n'est pas fixe.

Se que je veux dire c'est que comme exemple un catalogue de produit l'administrateur peut créer de nouvelles catégorie et sous-catégorie.

Je cherche un moyen dynamique de pouvoir accorder ou non aux utilisateurs l'acces a certaines catégorie.

Évidemment, j'ai une section Gestion des utilisateurs.

Une requete listera toutes les catégiries et sous-catégories avec deux bouton radion pour le droit d'accès "oui" - "non".

J'envisage une table permission avec champs: id_permission, id_administrateur, id_categorie.

Maintenant là où je n'ai plus de bonne idée qui fonctionne c'est au niveau du login pour créer les session de permission approprié et du code a insérer dans les pages pour reconnaitre le droit ou non droit d'accès.

Idéalement, j'aimerais mettre un bout de code dans le header plutôt que dans chacune des pages.

Pouvez-vous m'éclairer svp?

Merci!

Posté : 06 mars 2008, 09:44
par d0m
Salut,

tu peux par exemple lors de l'identification mettre en session le nom des pages accessibles par l'utilisateur selon son profil.

Ensuite dans ton header, tu vérifie si la page en cours ($_SERVER['PHP_SELF']) est en session.
- Si oui tu continues simplement le reste du script,
- Si non tu rediriges vers le menu ou autre.

Posté : 07 mars 2008, 14:31
par pjl
Tu ne dois pas avoir beaucoup de pages concernées par le problème, 4-5 à tout casser, non ?
- affichage d'une catégorie
- affichage d'un produit
- création d'un produit
- MAJ d'un produit.

Pour la table permission, je me mettrais que 2 champs, l'id_administrateur et l'id_categorie.
L'id_permission ne sert à rien. Bien sur, à la création de ta table, tu interdis les doublons du couple id_administrateur-id_categorie.

Tu stockes l'id_administrateur en variable de session dès que la personne s'est logué.
Tu crées un petit fichier include qui gérera les permissions avec une requête du type
SELECT COUNT(id_categorie) FROM table_permission WHERE id_administrateur = id du logué AND id_catégorie = id catégorie choisie.
Le résultat est égal à zéro, tu rediriges vers une page spécifique, sinon, tu laisses se dérouler le script.
Tu inclus ce fichier dans les pages concernées.