2013-02-17 62 views
0

我正在研究一個新的rails 3應用程序。在這個應用程序中,我有兩種不同類型的資源(admin車庫)都有不同的視圖和使用設計2個不同的登錄屏幕。管理員可以創建一個車庫,並可以爲車庫管理員可以登錄到應用程序的車庫生成一個密碼。直到現在我能夠實現這一點。如何根據設計中的模型類型進行重定向?

我在上面的實現中遇到的一個問題是,一旦登錄後,車庫管理員能夠通過更改瀏覽器中的URL來查看管理部分,並且可以像管理員用戶那樣進行更改。

現在我想要實現的是對於這兩個模型以及有人登錄時都有單個登錄/登錄表單,具體取決於他們的模型類型,他們應該被重定向到它們各自的視圖。此外,我想限制所有用戶,但管理員使用管理部分。

我應該怎樣實現這個。我正在使用設計進行身份驗證。

回答

1

resource在這裏你的模型的一個實例:

def after_sign_in_path_for(resource) 
    return admin_route_path if resource.is_a?(Admin) 
    return garage_route_path if resource.is_a?(Garage) 
end 

resource是型號名稱這裏的象徵:

def after_sign_out_path_for(resource) 
    return "/admin" if resource == :admin 
    return "/"  if resource == :garage 
end 

通常進去application_controller.rb


一個我在上面的實現中遇到的問題是,一旦登錄後,車庫管理員能夠通過更改瀏覽器中的URL來查看管理部分,並且可以像管理員用戶那樣進行更改。

至於這,這是一個授權問題,而不是一個認證問題。雖然你可以在設計中做一些簡單的事情來管理它,比如管理員標誌或者其他特性,所以你可以區分這兩者。只是重定向不會完全解決這個問題。

看看康康,聲明授權,我敢肯定還有很多其他的。

+0

非常感謝,非常感謝。 – archit2u 2013-02-19 08:16:48