假设我有User
模型和Post
模型。Post
模型包含字段user_id
。
User
已经$hasMany
开Post
和Post
已经$belongsTo
开User
。
我有一些帖子编辑操作:
PostsController::edit($id) {
if($this->request->isPost())
{
$this->Post->id = $id;
$this->Post->save();
}
$post = $this->Post->read($id);
$this->set(compact('post'));
}
我AuthComponent
用来登录用户。
如何防止用户编辑其他一些帖子?有没有内置功能/选项的蛋糕来做到这一点?因为 some1 可以使用任何 id 登录和发布编辑操作。甚至没有保存帖子数据的情况 - 假设帖子是私人的(只有所有者应该看到它) - 当有人调用 posts/edit/some_id 时,它会看到这篇帖子的编辑表单......
更简单的方法是在编辑操作的开头添加它:
$this->Post->id = $id;
if($this->Post->readField('user_id') != $this->Auth->user('id'))
{ //trigger error or redirect }
但是我必须在每个更新/读取属于某个用户的任何数据的操作的开头添加它。所以我正在寻找更优雅的方式来做到这一点。