Как я могу защитить статический контент в Rails 3? - PullRequest
4 голосов
/ 25 января 2011

У меня есть руководство пользователя HTML для моего приложения.Но я не хочу, чтобы те, кто не вошел в систему, могли получить к нему доступ.Я использую аутентификацию Devise и авторизацию CanCan.

Ответы [ 3 ]

3 голосов
/ 25 января 2011

Я бы хранил его вне публичной папки и обслуживал его через простой контроллер, который просто выполняет проверку подлинности.Выполнение этого с x-sendfile (https://tn123.org/mod_xsendfile/) должно минимизировать дополнительную нагрузку на сервер.Вот примерное руководство: http://elivz.com/blog/single/mod_xsendfile/

0 голосов
/ 25 января 2011

Взгляните на плагин High Voltage .

Это довольно простой контроллер, предназначенный для обслуживания статического контента.Аутентифицируйтесь, расширяя HighVoltage :: PagesController и обрабатывая аутентификацию, как если бы вы использовали любой другой контроллер (минимальный пример доступен на связанной странице).

0 голосов
/ 25 января 2011

Я не знаком с методом аутентификации, который вы используете, но как только вы аутентифицируете пользователя, вы можете сохранить флаг logged_in в своей сессии

session[:user]='logged_in'

, чем вы можете создать помощника

def logged_in?
  session[:user] =='logged_in'
end

Теперь вы сможете использовать этот помощник в своих представлениях

<% if logged_in? %>
  your html
<% end %>

Теперь это очень просто, если вам нужно что-то более конкретное, сообщите нам

- ТакЯ только что заметил, что вы хотите убедиться, что только зарегистрированные пользователи смогут видеть всю страницу.

, тогда вы должны использовать функцию аутентификации в качестве фильтра перед вашим контроллером

before_filter :authenticate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...