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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy