2012-09-04 27 views
0

我有一个复杂的Ruby on Rails应用程序。
因此,最终用户可以从UI中进行更改,其中开发人员也可以从控制台进行更改。
那么有没有一种方法来确定是否从UI或控制台进行更改。
我可以捕获最终用户登录详细信息,当他们从UI进行更改时,但我能做些什么来知道谁是从控制台进行更改的?
请帮忙?如何确定是否通过UI或从控制台进行更改?

回答

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方法中。

当然也有可能是更简单的方法,我只是:-)

+0

是的,我确实有current_user方法,但只有当用户从Ui输入他或她的凭证并登录到应用程序时,才会设置当前用户方法。我怎么能从控制台做这样的事情。 为了安全起见,我需要捕获控制台人员所做更改的细节。 –

+0

正如我所说:你必须实现你自己的控制台或找到一些现有的实现。这样的用户受限控制台会有意义,但我不知道任何这样的应用程序。 – Atastor

+0

好的谢谢............我会研究它.. –

3

一个结点的答案是否定的,从控制台的变化不能被跟踪或跟踪。访问控制台意味着无需锁定即可访问整个应用程序。

+0

好的谢谢............ :) –

相关问题