2010-04-14 30 views
0

Je suis en train de générer un menu dynamique en fonction de l'autorisation utilisateur avec le composant ACL dans le gâteau php ..Gâteau génération de menu php

ie., Si un utilisateur de connexion, je dois vérifier que toutes les actions sont autorisées pour cet utilisateur spécifique et selon la liste des actions que j'ai besoin pour générer le menu

peut me aider à obtenir toutes les actions autorisées des ACOS, Aros, acos_aros tables

Répondre

1

Essayez PoundCake Control Panel. La génération de menu dynamique est implémentée ici. Il génère uniquement les éléments de menu auxquels l'utilisateur a accès en fonction des tables acos, aros, acos_aros et menus. Il y a un contrôleur pour remplir semi-automatiquement la table des menus avec les données de votre table acos.

+0

itz un bel outil j'ai essayé ........... mais cela prend beaucoup de temps à charger. – RSK

+0

Combien de temps cela prend-il? Cela devrait être seulement la première fois que vous accédez à la page. Parce qu'il vérifie les autorisations de l'utilisateur pour chaque élément de menu. Les résultats sont mis en cache. – bancer

1

Je dispose d'un modèle AdminMenu qui définit mon admin hiérarchie de navigation du système. C'est la même chose pour tous les utilisateurs. La structure est mise en cache après chaque sauvegarde. Lorsqu'un utilisateur se connecte au système Admin, je récupère les données du menu à partir du cache et récupère également toutes les autorisations auxquelles l'utilisateur connecté a été autorisé à accéder. Je fais cela en une seule requête. Les détails sont posted here. Ensuite, je parcourt récursivement les données de menu, vérifie chaque nœud par rapport aux autorisations de cet utilisateur, et construis une structure de menu et la stocke dans la session. Cette structure de menu contient uniquement les nœuds auxquels l'utilisateur connecté a l'autorisation d'accéder, et il n'est généré qu'une seule fois, lorsqu'il se connecte. Cette structure de menu est ensuite rendue avec un assistant. En outre, les autorisations sont disponibles dans la session, vous pouvez donc vérifier si vous souhaitez afficher les liens dans vos vues ou non, par ex. N'affichez le lien que pour supprimer un message s'il a l'autorisation de le supprimer.