Я использую Pundit для авторизации для моей модели User.
Моя цель состоит в том, чтобы расширить это использование моей модели AdminUser, особенно для моего пространства имен администратора.
По умолчанию Pundit проверяет наличие«пользователь» или «текущий_пользователь».Как я могу изменить это, чтобы проверить «admin_user» или «current_admin_user», основанный на Devise?
icies / admin / admin_policy.rb (закрытая система, в настоящее время ищет пользователя вместоAdminUser)
class Admin::AdminPolicy
attr_reader :user, :record
def initialize(user, record)
# Must be logged in
raise Pundit::NotAuthorizedError, "You must be logged in to perform this action" unless user
@user = user
@record = record
end
def index?
false
end
def show?
false
end
def create?
false
end
def new?
create?
end
def update?
false
end
def edit?
update?
end
def destroy?
false
end
class Scope
attr_reader :user, :scope
def initialize(user, scope)
raise Pundit::NotAuthorizedError, "You must be logged in to perform this action" unless user
@user = user
@scope = scope
end
def resolve
scope.all
end
end
end
icies / admin / home_policy.rb (Пример подполитики пространства имен Admin)
class Admin::HomePolicy < Admin::AdminPolicy
def index?
user.present?
end
end