class ActionDispatch::PermissionsPolicy::Middleware
Public Class Methods
new(app)
click to toggle source
# File lib/action_dispatch/http/permissions_policy.rb, line 33 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/action_dispatch/http/permissions_policy.rb, line 37 def call(env) _, headers, _ = response = @app.call(env) return response if policy_present?(headers) request = ActionDispatch::Request.new(env) if policy = request.permissions_policy headers[ActionDispatch::Constants::FEATURE_POLICY] = policy.build(request.controller_instance) end if policy_empty?(policy) headers.delete(ActionDispatch::Constants::FEATURE_POLICY) end response end
Private Instance Methods
policy_empty?(policy)
click to toggle source
# File lib/action_dispatch/http/permissions_policy.rb, line 60 def policy_empty?(policy) policy&.directives&.empty? end
policy_present?(headers)
click to toggle source
# File lib/action_dispatch/http/permissions_policy.rb, line 56 def policy_present?(headers) headers[ActionDispatch::Constants::FEATURE_POLICY] end