Отклонить гостевой доступ в приложении rails - PullRequest
1 голос
/ 16 августа 2011

Я хочу полностью заблокировать приложение Rails, чтобы все маршруты, которые явно не авторизованы для конкретной роли пользователя, были отклонены (403).

Я унаследовал это приложение, поэтому мое понимание фреймворка плохое, но в настоящее время кажется, что у меня все наоборот: все открыто, если я явно не закрываю его.

У меня есть файл authorization_rules.rb, и я предоставил гостевой роли разрешения no , но я все еще могу получить доступ к страницам без входа в систему. Я думаю, что могу перейти на страницу за страницей и сделать Конечно, страница требует авторизации (filter_access_to?), но я могу пропустить ее. Как я могу просто закрыть все, а затем открыть доступ только там, где я это явно разрешил?

Это использует Rails 2.3.5.

1 Ответ

1 голос
/ 16 августа 2011

Предполагая, что приложение использует before_filter для ограничения доступа, вы можете переместить фильтр before в контроллере приложения и пропустить его для определенных действий на отдельных контроллерах:

#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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...