Spec-Zone.ru › Ruby on Rails 8.1

модуль ActionController::PermissionsPolicy::ClassMethods

Открытые методы экземпляра

permissions_policy (**options, &block) Показать исходный код
# File actionpack/lib/action_controller/metal/permissions_policy.rb, line 33
def permissions_policy(**options, &block)
  before_action(options) do
    unless request.respond_to?(:permissions_policy)
      raise "Cannot override permissions_policy if no global permissions_policy configured."
    end
    if block_given?
      policy = request.permissions_policy.clone
      instance_exec(policy, &block)
      request.permissions_policy = policy
    end
  end
end

Переопределяет части глобально настроенного заголовка Feature-Policy:

class PagesController < ApplicationController
  permissions_policy do |policy|
    policy.geolocation "https://example.com"
  end
end

Параметры можно передавать так же, как в before_action. Например, передайте only: :index, чтобы переопределить заголовок только для действия index:

class PagesController < ApplicationController
  permissions_policy(only: :index) do |policy|
    policy.camera :self
  end
end

Требуется глобальная политика, определённая в инициализаторе; она может быть пустой:

Rails.application.config.permissions_policy do |policy|
  # policy.gyroscope :none
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API