Skip to content

Commit 068de06

Browse files
committed
fix(policy): synchronize policy_map updates in update and remove
1 parent 0febd1d commit 068de06

File tree

1 file changed

+3
-11
lines changed

1 file changed

+3
-11
lines changed

casbin/model/policy.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,6 @@ def update_policy(self, sec, ptype, old_rule, new_rule):
187187

188188
return True
189189

190-
191-
192190
def update_policies(self, sec, ptype, old_rules, new_rules):
193191
"""update policy rules from the model using update_policy for each rule.
194192
If any update fails, roll back all changes."""
@@ -212,8 +210,6 @@ def update_policies(self, sec, ptype, old_rules, new_rules):
212210

213211
return True
214212

215-
216-
217213
def remove_policy(self, sec, ptype, rule):
218214
"""removes a policy rule from the model."""
219215
if not self.has_policy(sec, ptype, rule):
@@ -229,15 +225,13 @@ def remove_policy(self, sec, ptype, rule):
229225

230226
return rule not in assertion.policy
231227

232-
233228
def remove_policies(self, sec, ptype, rules):
234229
"""Remove multiple policy rules by sequentially calling remove_policy."""
235230
for rule in rules:
236231
if not self.remove_policy(sec, ptype, rule):
237232
return False
238233
return True
239234

240-
241235
def remove_policies_with_effected(self, sec, ptype, rules):
242236
effected = []
243237
for rule in rules:
@@ -270,15 +264,14 @@ def remove_filtered_policy_returns_effects(self, sec, ptype, field_index, *field
270264

271265
assertion = self[sec][ptype]
272266
assertion.policy = tmp
273-
267+
274268
new_map = {}
275269
for idx, r in enumerate(assertion.policy):
276270
new_map[DEFAULT_SEP.join(r)] = idx
277271
assertion.policy_map = new_map
278272

279273
return effects
280274

281-
282275
def remove_filtered_policy(self, sec, ptype, field_index, *field_values):
283276
"""removes policy rules based on field filters from the model."""
284277
tmp = []
@@ -297,15 +290,14 @@ def remove_filtered_policy(self, sec, ptype, field_index, *field_values):
297290

298291
assertion = self[sec][ptype]
299292
assertion.policy = tmp
300-
293+
301294
new_map = {}
302295
for idx, r in enumerate(assertion.policy):
303296
new_map[DEFAULT_SEP.join(r)] = idx
304297
assertion.policy_map = new_map
305298

306299
return res
307300

308-
309301
def get_values_for_field_in_policy(self, sec, ptype, field_index):
310302
"""gets all values for a field for all rules in a policy, duplicated values are removed."""
311303
values = []
@@ -319,4 +311,4 @@ def get_values_for_field_in_policy(self, sec, ptype, field_index):
319311
if value not in values:
320312
values.append(value)
321313

322-
return values
314+
return values

0 commit comments

Comments
 (0)