我开发我的项目的访问控制库,我期待以最佳的解决方案来做到这一点:访问控制问题
我正在从数据库中所有我的访问列表,以数组。在结果它看起来像这样:
$array = array(
'*' => array('administrator' => TRUE),
'frontend/*' => array(
'user' => TRUE,
'unregistered' => TRUE
),
'backend/*' => array(
'user' => FALSE,
'unregistered' => FALSE
),
'backend/user/*' => array(
'moderator' => FALSE,
'supermoderator' => TRUE,
),
'backend/article/*' => array(
'supermoderator' => TRUE
),
'backend/article/add/new' => array(
'moderator' => TRUE
)
);
的“*”表示此用户具有访问所有相关选项后端/条/ *意味着该组可以访问所有文章选项(文/添加,文章/删除,...)。
正如您所看到的,超级监督器中没有backend/article/add
中的项目,但它具有所有文章页面的主控权限。
检查此问题的最佳方法是什么?我试过array_walk()
,但我想它不会帮助我。
感谢您的建议...
我可以共享我的整个代码,如果你想。
*编辑*
我是否储存错了吗?如果你有更好的解决方案来存储它,我会很高兴听到它。
谢谢你的任何意见
是的我可以做到爆炸的资源和检查它。我不需要程序员。但是因为我不太了解所有的PHP函数,所以我认为一些编码人员可以提供我的功能。 – Valour 2011-06-11 23:02:39
除了可能'foreach','explode'和'in_array'之外,您并不特别需要任何PHP函数,但是这些函数在任何语言中都很常见,所以您的论点完全没有意义。你需要一个算法。 – Halcyon 2011-06-11 23:06:17
如何储存它们?我正在使用资源=>组关系。该组=>资源关系会更有帮助吗? – Valour 2011-06-11 23:09:25