2012-04-21 11 views
4

すべてのアクティブなセッションのリストを取得する方法はありますか?メモリキャッシュのセッションリストがあり、基本的な管理目的でユーザーID、ソースIP、タイムスタンプ、期間などを表示したい。Rubyのレール - アクティブなセッションのリスト

+2

メモリセッションストアを使用するだけのヘッドアップは、プロセス間で共有されないため、本番環境ではお勧めできません。また、データベースストアを使用している場合を除いて、これは多分複雑でハッキリになるでしょう。 –

+0

@AndrewMarshall。ありがとう、それは知っている良いことです。 –

+0

認証には何を使用していますか?いくつかの異なるオプションがそこに組み込まれています。 – Sean

答えて

2

私のコメントを拡大するには、あなたのやりたいことに似た何かをしています。私はauthlogicを使っていますが、あなたは他の認証パッケージと同等のことをすることができると思います。

私はauthlogicの自動ログアウト機能を使用しており、120分後にユーザーをログアウトするように設定しています。それを知って、リストを生成するのは簡単です。私は、次の操作を行います。

<% User.find(:all, :conditions => ["last_request_at > ?", 120.minutes.ago]).each do |user| %> 
    <li> 
    <%= link_to user.name, admin_person_path(user.bio) %> 
    (<%= mail_to user.email %>) <%= time_ago_in_words(user.last_request_at) %> ago 
    </li> 
<% end %> 

あなたは、彼らが最後の要求をしたとき、私はちょうど彼らの名前、電子メールを一覧表示することがわかります。 last_login_ip、current_login_atなどを追加することは自明です。

これが役立つことを願っています。

+0

ありがとうSean。そのコードはよさそうだ。私はOmniAuthを使用していますが、そこにどのようなオプションがあるかを見てみましょう。 –

関連する問題