From 34181f8c28f21c89c4fe8b05ab3e674fdfa9d325 Mon Sep 17 00:00:00 2001 From: Daniel Bengl Date: Wed, 31 Jul 2024 14:58:25 +0200 Subject: [PATCH] Update accessible by strategy validation --- lib/cancan/config.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/cancan/config.rb b/lib/cancan/config.rb index 0fd8893f..4aff6aef 100644 --- a/lib/cancan/config.rb +++ b/lib/cancan/config.rb @@ -88,12 +88,14 @@ def self.with_accessible_by_strategy(value) end end - def self.validate_accessible_by_strategy!(value) - return if valid_accessible_by_strategies.include?(value) - - raise ArgumentError, "accessible_by_strategy must be one of #{valid_accessible_by_strategies.join(', ')}" +def self.validate_accessible_by_strategy!(value) + unless value < CanCan::ModelAdapters::Strategies::Base + raise ArgumentError, "Invalid strategy: #{value}. It should extend CanCan::ModelAdapters::Strategies::Base." end + return if valid_accessible_by_strategies.include?(value) +end + def self.does_not_support_subquery_strategy? !defined?(CanCan::ModelAdapters::ActiveRecordAdapter) || CanCan::ModelAdapters::ActiveRecordAdapter.version_lower?('5.0.0')