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


How could i change my user login system to multi tier'ed login

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

没有必要重新发明轮子。您正在寻找的是所谓的访问控制列表(ACL)功能。有许多可用的解决方案可以合并到您的项目中。我个人使用Zend的Acl库,但还有更多的风格。

如何工作(基本版本):你分配一些ACL角色-例如:"admin"、"staff"、"user"、"guest",其中"guest"是默认的匿名访问者。用户登录时,保存该用户会话中的ACL角色。

然后创建一个ACL类,将这些角色分配给资源。如。"admin"可以读取和编辑任何人的数据,"staff"可以读取"admin"、"staff"answers"user"的数据,但只能编辑自己和"user"的数据,"user"可以读取其他"user"的数据但只能编辑自己的数据。

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