Доступ к разработке методов помощника от Cancan и т. Д.

StackOverflow https://stackoverflow.com/questions/4275333

  •  28-09-2019
  •  | 
  •  

Вопрос

Это похоже на легкий вопрос, который я просто не могу обернуть голову.

Использование разработки для аутентификации и CANCAN для авторизации в приложении New Rails 3.

Как я могу получить доступ к методам, определенным в ApplicationController внутри Ability Класс, который предоставляет Канкан?

ака, что-то вроде этого:

class Ability

  include CanCan::Ability

  def initialize(user)

    user ||= User.new # Guest user.

    can :create, Post if user_signed_in?

  end
end

куда user_signed_in? определяется в ApplicationController.

Это было полезно?

Решение

Это может не быть ответом, который вы хотели, но кажется, что вы хотите смешать кодовые проблемы, которые не должны быть смешаны.

Это хорошая идея для доступа user_signed_in? Внутри ваших правил авторизации? ... Поскольку разрешение касается только того, что кто-то может сделать, и не должен беспокоиться, если кто-то аутентифицирован (или нет).

Перед фильтром (before_filter :authenticate_user!) на контроллере ваших постов, чтобы убедиться, что ваш пользователь аутентифицируется, должно быть достаточно, чтобы добиться вашей цели; Ваши правила авторизации могут быть запущены наряду Проверка аутентификации, а не перепутана с этим кодом.

Это слоистый подход :-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top