This is an automated email from the ASF dual-hosted git repository. hsluoyz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/casbin-lua-casbin.git
commit 082d1c35c34520436e6c41f91562a03cc2a50ab9 Author: Yang Luo <[email protected]> AuthorDate: Thu Aug 6 22:07:42 2026 +0800 fix: call isFiltered() on adapters that expose it as a method --- src/main/CoreEnforcer.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/CoreEnforcer.lua b/src/main/CoreEnforcer.lua index 2cb464f..0249343 100644 --- a/src/main/CoreEnforcer.lua +++ b/src/main/CoreEnforcer.lua @@ -309,10 +309,25 @@ end --[[ * isFiltered returns true if the loaded policy has been filtered. * + * An adapter may expose isFiltered either as a flag, like the file + * FilteredAdapter does, or as the method the FilteredAdapter interface + * declares. Reading it as a flag alone made every adapter of the second + * kind look permanently filtered, because a method is a truthy value, and + * the enforcer then never loaded its policy. + * * @return if the loaded policy has been filtered. ]] function CoreEnforcer:isFiltered() - return self.adapter.isFiltered + if not self.adapter then + return false + end + + local filtered = self.adapter.isFiltered + if type(filtered) == "function" then + filtered = filtered(self.adapter) + end + + return filtered and true or false end --[[ --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
