0

AuthlogicのHTTP基本認証を使用する場合、セッションが設定されていないように見えるため、UserSession.findはnilを返します。その結果、通常のcurrent_userメソッド(以下のように)を参照するdeclarative_authorizationは、現在のユーザーを見つけることができません。

def current_user_session
    return @current_user_session if defined?(@current_user_session)
    @current_user_session = UserSession.find
end

def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.record
end

ユーザーがHTTP基本認証を介して認証するときにセッションを作成することは可能ですか(そのセッションは要求が閉じるまでしか持続しませんが)、またはこれを行うためのより良い方法はありますか?

4

2 に答える 2

0

これをぶつけます。私はまったく同じ問題を抱えています(同じgem-authlogic + declarative_auth)。

私にとっての解決策を見つけました。必要なのは、次のコードをauthorization_rules.rbの最後にコピーすることだけでした。

privileges do
  privilege :manage, :includes => [:create, :read, :update, :delete]
  privilege :read, :includes => [:index, :show]
  privilege :create, :includes => :new
  privilege :update, :includes => :edit
  privilege :delete, :includes => :destroy
end
于 2010-10-14T17:36:04.943 に答える
0

Deviseをいじると、ActiveResourceを使用している限り、次の代わりにsite = "http:// user:password @ domain"を実行する限り、すべてが機能しているように見えます。

site = "http://domain"
username = "user"
password = "password"

これは機能しません。私はその理由を掘り下げるのに時間をかけていません。

于 2010-10-15T11:14:59.580 に答える