0

一定期間、私以外のすべてのユーザーがシステムにログインできないようにしたい。どうやってやるの?

hello.world@email.com としてログインし、大きな CSV ファイル (約 20k レコード) からデータをインポートする機能があるため、データのインポート中に hello.world@email.com 以外のユーザーがログインできないようにしたい.

私は使用しようとします:

  • すべてのユーザーのフラグをロック済みとして設定: システムが大きくなり、大量のユーザーがいる場合、これは適切ではありません。

  • ApplicationControllerlikeにクラス変数を追加し、@@system_lock_only_forhello.world@email.com を内部に保持して、like を保持しますbefore_filter

    if @@system_lock_only_for && @@system_lock_only_for != current_user.email
        redirect_to somewhere_path
    end
    

    しかし、それが最善の方法であるかどうかはわかりません。

どうすればこの問題をよりよく解決できますか?

PS。Rails 3.2でDeviseを使用しています

4

2 に答える 2

0

ユーザーがアクセスできないようにする場合は、Web サーバーをシャットダウンして、コマンド ラインからインポートを実行できます。

または、各リクエストでチェックするグローバル変数を設定して、メンテナンス ページを見つけることもできます。

于 2013-03-30T14:22:59.933 に答える
0

これを試して:

認証にセッションを使用する場合があります。

このリンクを参照してください: https://github.com/binarylogic/authlogic/blob/master/lib/authlogic/session/magic_columns.rb#L65

def last_request_update_allowed?
  action_name != "check_session_timed_out"
end

セッションの有効期限が切れたら、 redirect_towhere_pathを使用します。それでおしまい。

于 2013-03-30T14:23:27.077 に答える