我有一個表單,在這個表單中用戶可以在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