def expose_authorization_rules(*rules, field_name: nil, prefix: ::ActionPolicy::GraphQL.default_authorization_field_prefix, field_options: {}, **options)
raise ArgumentError, "Cannot specify field_name for multiple rules" if rules.size > 1 && !field_name.nil?
rules.each do |rule|
gql_field_name = field_name || "#{prefix}#{rule.to_s.delete("?")}"
field gql_field_name,
ActionPolicy::GraphQL::Types::AuthorizationResult,
null: false,
**field_options
define_method(gql_field_name) do
allowance_to(rule, object, **options)
end
end
end