0

无权访问菜单主页、个人资料、画廊,请联系我们。我有两种类型的用户,即管理员操作员。例如,管理员只需在主页个人资料联系我们菜单中查看。而在operator中,只有homeprofile菜单可见。如何区分codeigniter的权限?

请帮助我,谢谢:)

4

2 回答 2

3

一种简单的方法是提供配置文件 ID 来区分用户。例如对于管理员 1 和操作员用户 2。当您在视图文件中显示菜单时,使用配置文件 ID 在菜单显示上设置一些条件。

请注意将配置文件 ID 与用户数据一起保存在会话数据中。

于 2012-12-21T07:20:50.870 回答
0

如果您从未设想拥有超过两种类型或需要一种管理员权限但不需要另一种管理员权限的人,则拥有不同的用户类型是可行的。一个更好的,或者更确切地说是面向未来的方法是通过角色来做到这一点。

创建一个角色表,其中包含您的不同角色,现在您将拥有管理员和用户角色供您使用。然后创建一个包含 RoleId 和 UserId 的连接表。当用户登录时,您创建一个会话变量并使用他们持有的不同角色的数组填充它,然后当您有一个需要保护的特定页面时,您只需检查该数组以获得所需的权限。

例如,假设您有一个商业站点,您需要用户登录、主管理员登录、销售登录和仓库登录。假设为了争论,销售和仓库需要编辑产品的能力,但不应允许仓库编辑价格。您当然可以分配不同的用户类型,然后在加载页面时检查这些用户类型,但是越来越多的权限需要得到的混乱。使用您为仓库和销售人员分配产品权限角色的角色,只有销售人员才能获得价格编辑权限。

正如我所说,如果您只需要两种不同的用户类型和两组不同的权限,那么基于角色的身份验证可能是矫枉过正的。但话虽如此,为您发现需要更多的情况进行计划和构建并没有什么坏处。

于 2012-12-21T12:30:53.687 回答