我正在尝试根据蛋糕php中的ACL组件给出的用户权限生成动态菜单。
即,如果用户登录,我需要检查该特定用户允许的所有操作,并根据我需要生成菜单的操作列表
任何人都可以帮助我从acos,aros,acos_aros表中获取所有允许的操作
答案 0 :(得分:1)
我有一个AdminMenu模型,用于定义我的管理系统导航层次结构。这对所有用户都是一样的。每次保存后都会缓存该结构。当用户登录管理系统时,我从缓存中获取菜单数据,并获取登录用户已被授予访问权限的所有权限。我在一个查询中执行此操作。详细信息为posted here。
然后我递归遍历菜单数据,根据该用户的权限检查每个节点,并构建菜单结构并将其存储在会话中。此菜单结构仅包含登录用户有权访问的节点,并且只有在登录时才生成一次。然后使用帮助程序呈现此菜单结构。
此外,会话中还提供权限,因此您可以检查是否在视图中显示链接,例如如果他们有权删除帖子,则只显示删除帖子的链接。
答案 1 :(得分:1)
试试PoundCake Control Panel。在那里实现动态菜单生成。它仅生成用户可以访问的菜单项,基于acos,aros,acos_aros和菜单表。有一个控制器可以使用acos表中的数据半自动填充菜单表。