2011-08-16 83 views
1

我想要完全鎖定Rails應用程序,使得針對特定用戶角色的所有非明確授權的路由都被拒絕(403)。在Rails應用程序中拒絕訪客訪問

我繼承了這個應用程序,所以我對框架的理解很差,但是目前好像我有相反的:一切的開放,除非我明確地將其關閉。

我有一個authorization_rules.rb文件,我已經給客串角色沒有權限,但我可以在不登錄的還是訪問網頁。我想我可以在一頁一頁去,並確保一個頁面需要授權(filter_access_to?),但我可能會錯過一個。我怎樣才能關閉所有東西,然後只在我明確允許的情況下打開訪問權限?

這是使用Rails 2.3.5。

+0

你有你的application_controller一個require_user方法?如果你這樣做,只是添加的before_filter:require_user,:除了=> [:登錄]您的應用程序控制器 – corroded

回答

1

假設應用程序使用before_filter限制訪問,您可以在應用程序控制器過濾器之前移動,並跳過它特別行動,各個控制器:

#app/controllers/application_controller.rb 
before_filter :filter_access 

#app/controllers/your_specific_controller.rb 
skip_before_filter :filter_access, :only => [:action1_accessible_by_guest, :action2_accessible_by_guest] 
+0

我會繼續和接受這一點,因爲這會讓部分:filter_access在我的應用程序控制器是我缺少的是什麼。一旦我做到了,我能夠控制通過配置/ authorization_rules.rb訪問。 – Mud