0

複雑なRubyonRailsアプリケーションがあります。
したがって、エンドユーザーはUIから変更を加えることができますが、開発者はコンソールからも変更を加えることができます。
したがって、変更がUIから行われたのかコンソールから行われたのかを確認する方法はありますか。
エンドユーザーがUIから変更を加えたときにログインの詳細を取得できますが、コンソールから誰が変更を加えたかを知るにはどうすればよいですか?
助けてください?

4

2 に答える 2

3

答えはノーです。コンソールからの変更を追跡または追跡することはできません。コンソールへのアクセスとは、ロックなしでアプリケーション全体にアクセスできることを意味します。

于 2012-09-04T10:49:02.827 に答える
1

ユーザーが rails c にアクセスできる場合、通常はアプリケーションを無制限に使用できます。だから私はその点で悲観的です。

アプリケーション マシンへのログインに応じて current_user メソッドを実装する制限付きコンソールを実装/使用することを試みることができます。しかし、それはあなたのシナリオには少し無理が​​あるかもしれません?

更新:うーん...この「自分で巻く」は、最初に思ったよりも簡単かもしれません。もちろん、 current_console_user.rb のようなイニシャライザを実装できます。

module Test3ElementBase
  class Application < Rails::Application
    config.current_console_user=ENV["USER"] if ENV["RAILS_CONSOLE"] == "Y"
  end
end

次に、コンソール呼び出しをしっかりとラップします

RAILS_CONSOLE=Y rails c

Test3ElementBase::Application.config.current_console_user は、コンソールから呼び出されたときにのみ定義されるようになりました。これで、この事実を元の current_user メソッドに混ぜるだけで済みます。

もちろん、もっと簡単な方法があるかもしれません。私はただのナブです :-)

于 2012-09-04T10:38:00.140 に答える