限制访问权限。我有一个表,简化有3列。用户,传递,访问。
我有4种类型的页面......一个需要1,也就是超级管理员。另一个需要2,也就是一般管理员...另外3个,用于mod。最后一个,任何用户都可以访问。
我可以编写代码,但我应该怎么做呢?
我自己想出了两个选项:进入我的库的功能或包含我包含的文件,如果他们无法访问,则重定向到“受限制的“即可。
还有其他选择吗?最常见的方法是什么?最有效的重用代码。
答案 0 :(得分:0)
有两种方法可以实现您想要实现的目标。我通常采用的方法是根据访问级别隐藏链接。如果不允许用户查看特定内容,请创建一个隐藏链接的功能,并仅向具有适当权限的用户显示该链接。
如果用户键入受限页面的URL,则应将其重定向到默认页面(可能是主页),或者解释为何无法“在此处”的页面。您只需要测试权限,并拥有一个默认目标页面。任何“安全”页面都应该根据页面级别测试当前访问级别,如果不等于或大于此值则重定向。
另一种方法是创建一个默认的“拒绝访问”页面,该页面在用户无法获得足够的权限时加载。
我总是选择第一种方法。这很简单,可以实现并减少许多麻烦,最重要的是,用户会感到沮丧。它更像是一个用户界面问题,而不是一个编程问题。
问问自己,如果网站上有管理员链接没有去任何地方,amazon.com会有多烦人吗?
答案 1 :(得分:0)
我唯一真正的建议:不要编写自己的ACL库..那里有很多。看看https://packagist.org/search/?q=acl,看看它是否适合您的用例。我一直在关注https://github.com/alexshelkov/SimpleAcl,这可能是一个很好的开始(虽然我自己也没用过)。