2010-04-14 113 views
0

我试图根据与蛋糕PHP ACL组件提供的用户权限才能生成动态菜单..蛋糕PHP菜单生成

即,如果用户登录,我需要检查哪些是允许的所有行动特定用户,并根据动作该列表我需要生成菜单

任何一个可以帮助我得到的ACOS,阿罗斯所有允许的操作,acos_aros表

回答

1

尝试PoundCake Control Panel。动态菜单生成在那里执行。它仅基于acos,aros,acos_aros和菜单表生成用户可以访问的菜单项。有一个控制器半自动地填充你的acos表中的数据的菜单表。

+0

itz itz一个很好的工具,我试过........... 但它需要大量的时间来加载。 – RSK 2010-04-16 17:08:32

+0

需要多长时间?这应该只是您第一次访问页面。因为它验证用户对每个菜单项的权限。结果被缓存。 – bancer 2010-04-16 22:44:54

1

我有一个AdminMenu模型,它定义了管理员系统导航层次。这对所有用户都是一样的。该结构在每次保存后都被缓存。当用户登录到Admin系统时,我从缓存中获取菜单数据,并获取用户已被授予访问权限的所有权限。我在单个查询中执行此操作。详情是posted here

然后,我递归迭代菜单数据,检查每个节点与该用户的权限,并构建菜单结构并将其存储在会话中。此菜单结构只包含登录用户有权访问的节点,并且只有在登录时才会生成一次。此菜单结构随后将使用助手进行呈现。

此外,该权限在会话中可用,因此您可以检查是否在视图中显示链接,例如,如果他们有权删除帖子,则只显示删除帖子的链接。