【发布时间】:2014-03-21 21:32:57
【问题描述】:
我如何(安全地)只允许管理员和作者在 CakePHP 中编辑数据,而不参考硬编码的组 ID?
我在我的 CakePHP 2.4 应用程序中使用 Auth 和 ACL,所以通常我只会将编辑操作限制为管理员和版主,但我还需要允许作者编辑他们创建的数据。
我目前在我的 edit 方法中有这个,它可以工作,但使用硬编码值,这是不好的做法:我将 ACLS 设置为默认允许 edit,如果用户两者都不是,控制器将重定向作者也不是管理员。
有没有办法尊重 ACL 设置(从而避免硬编码的组 ID),同时为帖子作者打孔?
if ($this->Auth->user('id') != $this->Post->field('user_id')) {
if ($this->Auth->user('group_id') > 2) {
$this->Session->setFlash(__('You are not authorized to edit this post.'), 'flash/error');
$this->redirect(array('action' => 'index'));
}
}
【问题讨论】:
-
看看CakePHP's documentation关于授权。它可能会对您的问题有所帮助。
标签: php cakephp cakephp-2.0 cakephp-2.4