2

セッションオブジェクトを手動で処理する方法を知っている人はいますか? デバイスがデータベースに保存することは知っていますが、セッションを手動で設定する方法が必要です。

4

1 に答える 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 に答える