Как вы защищаете действия контроллера с Devise? - PullRequest
2 голосов
/ 08 декабря 2011

Я использую Devise, и пользователь может быть администратором или нет (true, false).

Может кто-нибудь помочь мне понять, как защитить действия контроллера, такие как:

  def new
    @post = Post.new
  end

Я знаю, что Devise позволяет вам вызывать администраторов, используя представления, но может ли это использоваться в контроллерах ?:

if current_user.admin?

Заранее спасибо.

1 Ответ

10 голосов
/ 08 декабря 2011

Вы можете просто добавить фильтр следующим образом:

class YourController < ApplicationController
  before_filter :check_access, :only => :new

  ...

  def new
    @post = Post.new
  end

  protected
  def check_access
    redirect_to <whatever> and return unless current_user.admin?
  end
end

или используйте CanCan или что-то в этом роде, чтобы красиво удерживать ограничения

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