目前,我的网站上有一个简单的管理员登录部分,管理员可以从中添加/编辑页面内容添加/编辑页面或主题。
现在,我正在考虑在这个项目中让这个站点以所需的方式工作。我需要添加多级用户系统,
我认为在我的表集中添加用户级别为INT
会允许这样做,
然后在我的"is_logged_in"
函数调用的页面中,我也可以调用用户级别INT
并将其存储在会话中。
这样,如果用户设置为级别1
,则显示链接a
,
如果用户设置为级别2
,则显示链接b
。
或者我是以错误的方式看待这个?
答案 0 :(得分:0)
无需重新发明轮子。您正在寻找的是称为访问控制列表(ACL)功能。您可以将许多可用的解决方案整合到项目中。我个人使用Zend的Acl库,但还有更多的口味。
工作原理(基本版):您指定一些ACL角色 - 例如“admin”,“staff”,“user”,“guest”,其中“guest”将成为您的默认匿名访问者。当用户登录时,您将ACL角色保存在用户的会话中。
然后创建一个ACL类,将这些角色分配给您的资源。例如。 “admin”可以读取和编辑任何人的数据,“工作人员”可以读取“admin”,“staff”和“user”数据,但只能编辑自己的“用户”数据,“用户”可以读取其他“用户”数据但是只编辑自己的数据。
在您的应用程序中,您需要检查是否允许用户执行某些操作或访问网站的某些部分(例如CMS),您检查ACL规则以执行操作/允许访问或告诉用户他/她没有被授权。