[英]CanCan ability ignores a condition that should disallow access?
在ability.rb
can :edit, Physician, user_id: user.id
如果我的理解是正確的,這應該看controller中的醫生實例,取其user_id
屬性,只有與當前用戶id匹配時才允許訪問。
相反,任何人都可以訪問其他任何人的edit
操作! (壞的)
我有一個編輯操作的自定義路線:
get 'physicians/:physicianname/edit' => 'physicians#edit'
在編輯 controller 中:
@physician = Physician.find_by(physicianname: params[:physicianname])
由於我沒有以通常的方式查找醫生(使用:id),我認為一些康康魔術/默認設置沒有按應有的方式應用。
但我不知道為什么,或者我必須做什么才能讓它發揮作用。
我認為您錯過了應該引起未經授權的響應的支票。 在你的行動中,你應該有這樣的事情:
@physician = Physician.find_by(physicianname: params[:physicianname])
authorize! :edit, @physician
看看gem wiki
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.