我正在尝试根据遍历每个页面上的每个对象的结果来动态组装我的管理应用程序的导航菜单的最佳方法,这样只有具有用户可用对象的页面显示在菜单中!
举个简单的例子,假设我有两种用户类型;秘书和经理。我有一个简单的管理页面来管理具有两个可以更新的字段的员工;“地址”和“出生日期”。通常,这两个字段都有一个访问级别,允许 SECRETARY 执行我们正常的 CRUD 操作。有一天,我们的管理员来了,并决定“出生日期”需要 MANAGER 级别的访问权限——这很简单,可以在页面上隐藏该字段或将其设为只读。现在,突然之间,管理员决定“地址”字段也需要 MANAGER 级别的访问权限。鉴于此页面上没有可供 SECRETARY 用户使用的字段,我的菜单如何知道是否显示它(无需为菜单选项创建单独的规则)?
Zend 中的 ACL 和 Navigation 之类的东西似乎只是让菜单选项成为访问控制对象。这个: http ://www.tonymarston.net/php-mysql/role-based-access-control.html#menu-system似乎可以满足我的要求,但我找不到任何演示或代码块谈论这个特定的话题。
下一个问题是,如果我必须维护数据库中页面上所有对象的列表,为什么不在数据库中包含 HTML,并让应用程序动态组装页面而不是使用视图+ 模板?(当然可以缓存)
有什么建议么?