有谁知道如何手动处理会话对象?我知道设计将它存储在数据库中,但必须有一种手动设置会话的方法。
问问题
1055 次
1 回答
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
于 2010-11-17T16:54:23.607 回答