我正在构建一个应用程序,其中不同的用户将根据他们支付的费用为他们提供不同的菜单项。菜单层次结构也有多个级别。
解决这个问题的最佳方法是什么?
我假设我需要一个表示菜单层次结构的数据库表,包括导航中节点的父子关系以及项目的排序。然后我用另一个表来管理用户是否有权访问该表中的特定项目。
当我渲染视图时,我会引用菜单以及用户输出菜单的访问权限,我还需要一个函数来检查每个控制器的相同授权,以防用户手动输入在控制器的URL中,他们不应该有权访问。
这是正确的做法吗?有任何缓存此建议的建议,以防止此类信息的持续查找?我对你如何处理这类要求提出任何建议。
答案 0 :(得分:1)
当用户登录时,我会检查所有权限,然后将它们存储到会话中。这样,您只需要从数据库中查找一次。
否则,您处理菜单以及每个控制器页面的方法似乎都很好。