2010-10-06 54 views

回答

2

嘗試warden.set_user(resource, :scope => scope)

這是測試用戶只能看到合同,這是他訪問的例子。 (!has_role和has_no_role是acl9 - 偉大的創業板管理訪問控制)

describe "GET index (logged in)" do 
    it "@contracts contains only contracts on which user has admin role" do 
     coA = Factory.create(:contract,:contract_name => "contract_A") 
     coB = Factory.create(:contract,:contract_name => "contract_B") 
     userA = Factory.create(:user, :username => "userA") 
     userA.has_role! :admin, coA 
     userA.has_no_role! coB 
     warden.set_user(userA, :scope => "user") 
     get :index, :locale => "fr" 
     assigns(:contracts).should eq([coA]) 
    end 
end 
+0

如果一定要檢查,如果用戶登錄或不那麼怎麼辦? – 2010-11-18 07:17:22

+0

(這實際上是答覆安託萬的回答,但我不明白如何回覆它!) 'warden'在哪裏定義? – 2010-12-08 19:14:00

+0

監獄長是設計用途的東西,所以任何你可以設計的東西,你應該能夠做的東西 – Jenny 2011-04-25 19:18:45