簡體   English   中英

CanCan 能力忽略一個應該禁止訪問的條件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM