0

我有一个复杂的 Ruby on rails 应用程序。
因此最终用户可以从 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 回答