【发布时间】:2012-03-20 16:12:27
【问题描述】:
假设我的数据库中有一个名为users 的表,我想检查表中的所有用户是否都有权执行某个控制器操作。如果我这样做:
foreach($users as $user)
{
// check if user has permission to execute action
$is_allowed = $this->Acl->check(
array('model'=>'User', 'foreign_key'=>$the_user_id),
'controllers/MyController/action_to_be_executed');
if(!$is_allowed)
{
// give permission to user
$this->Acl->allow(
array('model'=>'User', 'foreign_key'=>$the_user_id),
'controllers/MyController/action_to_be_executed');
}
}
显然,如果我有类似上面的内容,我的表中的用户越多,这段代码就会越慢。有谁知道我如何优化它以使其运行得相当快,即使我的表包含超过 5,000 个用户?有什么建议吗?
提前致谢
【问题讨论】:
标签: php cakephp cakephp-1.3 acl