在我的应用程序中我想从基于角色的访问控制开始,但我不知道检查loged用户是否具有访问权限的最佳实践。在页面上我有一些用户角色可以编辑的块,但是另一个只能查看,而第三个角色是这个块不可见。
我现在的代码如下:
if (role=="admin") {
full access
} elseif (role=="user") {
only display content without editing option
} else {
// not loged or user role with limited access
no content display
}
但是当我在第5页到第10页这个块时,创建很多这样的IF语句是非常不可行的。 是否有一些最佳实践来检查用户角色而不使用IF?
非常感谢,对不起我的英语。
答案 0 :(得分:2)
给角色编号:
const ACCESS_NONE = 0;
const ACCESS_USER = 1;
const ACCESS_ADMIN = 2;
const ACCESS_ROOT = 4;
注意我使用2的幂,即使用户在某个用户之前拥有所有访问权限,它仍然不会更大(NONE + USER + ADMIN< ROOT)。
现在,您所要做的就是
if ($access >= ACCESS_ADMIN) { //admin+ only content