Rails & Devise: Как аутентифицировать конкретного пользователя? - PullRequest
4 голосов
/ 26 июля 2011

Я впервые использую Devise с рельсами, и у меня возникают проблемы с одной вещью: я использовал предоставленный метод authenticate_user! в контроллере моего пользователя, чтобы ограничить доступ к страницам, например: before_filter :authenticate_user!, :only => [:edit, :show, :update, :create, :destroy]

Но это позволяет любому зарегистрированному пользователю получить доступ к любому действию :edit других пользователей, которое я хочу ограничить только этим пользователем.Как бы я это сделал?

Ответы [ 2 ]

5 голосов
/ 26 июля 2011

В вашем методе редактирования вам нужно проверить, есть ли у пользователя запись:

def edit
   @record = Record.find(params[:id])
   if @record.user == current_user
      @record.update_attributes(params[:record])
   else
      redirect_to root_path
   end
end
3 голосов
/ 26 июля 2011

Вы должны посмотреть в авторизации, такие как CanCan.Или, альтернативно, создайте новый метод, например, так:

# Create an admin boolean column for your user table.

def authenticate_admin!
  authenticate_user! and current_user.admin?
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...