0

我在我的應用程序中設置了水銀。它工作正常,但由於我還是非常新的軌道,我無法設置身份驗證。這是我運行後嘗試: 軌產生汞:安裝:認證Rails Mercury認證

  • 看來我可以使用該模塊在lib目錄

    module Mercury 
        module Authentication 
    
        def can_edit? 
         true if :authenticate_admin! //(from device) 
        end 
        end 
    end 
    

我試圖用這種方法在視圖中,但它不起作用。 Lib目錄應該自動加載,因爲該行在配置文件中未被註釋。

順便說一句,只是在更新方法上添加一個before_filter,我阻止了正常用戶表單確認編輯頁面。但是如果他們手動修改Url手工,他們仍然可以看到編輯器本身。

  • 我試圖重寫水星控制器,但它甚至不工作

什麼建議嗎?

+0

您需要定義「它不工作」。你是否得到錯誤,堆棧跟蹤,一些邏輯錯誤? – jdl

+0

我無法阻止用戶看到編輯器。所以我沒有正確使用Mercury的認證。 – Barbared

回答

5

最後回答我知道,但如果它有助於任何人。

的lib /汞/ authentication.rb

module Mercury 
    module Authentication 

    def can_edit? 
     if user_signed_in? && current_user.admin? 
     true 
     else 
     redirect_to root_path 
     end 
    end 

end 
end 

applicationcontroller.rb

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    include Mercury::Authentication 
.... 

重新啓動服務器,然後只有管理員可以查看和更新​​頁面

+0

是的,這對我工作感謝! –

2

我有同樣的問題。爲我工作的解決方案是明確包括取其模塊處理成authentication.rb像這樣:

module Mercury 
    module Authentication 
     include YourAppName::YourAuthenticationModule 
     def can_edit? 
      admin_signed_in? 
     end 
    end 
end 

相應插入你的模塊和驗證方法,並重新啓動服務器