Skip to content

Commit 88bcf96

Browse files
authored
Merge pull request #66 from wakemaster39/master
Added support for filtered policies
2 parents 2bdfefa + 220951b commit 88bcf96

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

casbin/core_enforcer.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def init_with_model_and_adapter(self, m, adapter=None):
5959
self._initialize()
6060

6161
# Do not initialize the full policy when using a filtered adapter
62-
if self.adapter:
62+
if self.adapter and not self.is_filtered():
6363
self.load_policy()
6464

6565
def _initialize(self):
@@ -147,13 +147,20 @@ def load_policy(self):
147147

148148
def load_filtered_policy(self, filter):
149149
"""reloads a filtered policy from file/database."""
150+
self.model.clear_policy()
150151

151-
pass
152+
if not hasattr(self.adapter, "is_filtered"):
153+
raise ValueError("filtered policies are not supported by this adapter")
154+
155+
self.adapter.load_filtered_policy(self.model, filter)
156+
self.model.print_policy()
157+
if self.auto_build_role_links:
158+
self.build_role_links()
152159

153160
def is_filtered(self):
154161
"""returns true if the loaded policy has been filtered."""
155162

156-
pass
163+
return hasattr(self.adapter, "is_filtered") and self.adapter.is_filtered()
157164

158165
def save_policy(self):
159166
if self.is_filtered():

0 commit comments

Comments
 (0)