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