2011-08-16 48 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