2012-09-04 16 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

好的謝謝............ :) –

相關問題