我有一个表单,在这个表单中用户可以在User模型和Photo模型中编辑它们的属性。用户模型有很多照片。Cancan对嵌套属性的授权操作
当用户提交表单时,PARAMS都会有,
:user => { :name => "blah blah",
:photos_attributes => {
"1" => { "id" => 10, "description" => "Some description"}
}
}
,我在控制器上做current_user.update_attributes(params[:user])
。
一切工作正常。但是没有对该行为进行授权。从而留下一个安全漏洞。用户可以通过改变表单帖子中传递的id(在photo_attribtues中)来修改他意愿的任何照片。
如何检查当前用户是否拥有使用CanCan更改photo_attributes中指定的照片的权限(即,如果他是所有者)。
注意:photos_attributes是可选的。该参数可能包含或不包含photos_attributes。 [:用户]
问题是关于嵌套属性模型,而不是嵌套的资源。 – hmans