如何将我的用户登录系统更改为多层登录

时间:2016-10-23 20:20:53

标签: php

目前,我的网站上有一个简单的管理员登录部分,管理员可以从中添加/编辑页面内容添加/编辑页面或主题。 现在,我正在考虑在这个项目中让这个站点以所需的方式工作。我需要添加多级用户系统, 我认为在我的表集中添加用户级别为INT会允许这样做, 然后在我的"is_logged_in"函数调用的页面中,我也可以调用用户级别INT并将其存储在会话中。 这样,如果用户设置为级别1,则显示链接a, 如果用户设置为级别2,则显示链接b。 或者我是以错误的方式看待这个?

1 个答案:

答案 0 :(得分:0)

无需重新发明轮子。您正在寻找的是称为访问控制列表(ACL)功能。您可以将许多可用的解决方案整合到项目中。我个人使用Zend的Acl库,但还有更多的口味。

工作原理(基本版):您指定一些ACL角色 - 例如“admin”,“staff”,“user”,“guest”,其中“guest”将成为您的默认匿名访问者。当用户登录时,您将ACL角色保存在用户的会话中。

然后创建一个ACL类,将这些角色分配给您的资源。例如。 “admin”可以读取和编辑任何人的数据,“工作人员”可以读取“admin”,“staff”和“user”数据,但只能编辑自己的“用户”数据,“用户”可以读取其他“用户”数据但是只编辑自己的数据。

在您的应用程序中,您需要检查是否允许用户执行某些操作或访问网站的某些部分(例如CMS),您检查ACL规则以执行操作/允许访问或告诉用户他/她没有被授权。