Railtutorial от Hartl: страница защиты пользователей - PullRequest
0 голосов
/ 11 марта 2012

Следуя инструкции Hartl по Railst в главе 10, где мы защищаем страницы редактирования пользователей, чтобы пользователи могли редактировать только свою информацию.http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec:protecting_pages

Есть ли способ запретить доступ к домашней странице пользователя (http://localhost:3000/users/1), если идентификатор пользователя не совпадает с идентификатором на странице, к которой осуществляется доступ, или если пользователь не вошел в систему?это позволяет пользователю просматривать страницу, только если его идентификатор совпадает с идентификатором страницы пользователя.

1 Ответ

2 голосов
/ 11 марта 2012

В учебном пособии уже определен correct_user before_filter, который проверяет, равен ли текущий зарегистрированный пользователь пользователю, найденному из params[:id].

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

before_filter :correct_user, :only => [:edit, :update]

Все, что вам нужно сделать, это добавить этот фильтр к действию show.

before_filter :correct_user, :only => [:show, :edit, :update]

edit: я забыл добавить, что @user = User.find(params[:id]) больше не нужен в действии show, так как он будет установлен фильтром before.

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