Skip to content

Commit 11079f3

Browse files
committed
fix(policy): synchronize policy_map update
1 parent 0febd1d commit 11079f3

File tree

1 file changed

+3
-16
lines changed

1 file changed

+3
-16
lines changed

casbin/model/policy.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,6 @@ def update_policy(self, sec, ptype, old_rule, new_rule):
172172
else:
173173
return False
174174

175-
if ast.tokens and "p_priority" in ast.tokens:
176-
priority_index = ast.tokens.index("p_priority")
177-
if old_rule[priority_index] != new_rule[priority_index]:
178-
raise Exception("New rule should have the same priority with old rule.")
179-
180175
ast.policy[rule_index] = new_rule
181176

182177
old_key = DEFAULT_SEP.join(old_rule)
@@ -187,8 +182,6 @@ def update_policy(self, sec, ptype, old_rule, new_rule):
187182

188183
return True
189184

190-
191-
192185
def update_policies(self, sec, ptype, old_rules, new_rules):
193186
"""update policy rules from the model using update_policy for each rule.
194187
If any update fails, roll back all changes."""
@@ -212,8 +205,6 @@ def update_policies(self, sec, ptype, old_rules, new_rules):
212205

213206
return True
214207

215-
216-
217208
def remove_policy(self, sec, ptype, rule):
218209
"""removes a policy rule from the model."""
219210
if not self.has_policy(sec, ptype, rule):
@@ -229,15 +220,13 @@ def remove_policy(self, sec, ptype, rule):
229220

230221
return rule not in assertion.policy
231222

232-
233223
def remove_policies(self, sec, ptype, rules):
234224
"""Remove multiple policy rules by sequentially calling remove_policy."""
235225
for rule in rules:
236226
if not self.remove_policy(sec, ptype, rule):
237227
return False
238228
return True
239229

240-
241230
def remove_policies_with_effected(self, sec, ptype, rules):
242231
effected = []
243232
for rule in rules:
@@ -270,15 +259,14 @@ def remove_filtered_policy_returns_effects(self, sec, ptype, field_index, *field
270259

271260
assertion = self[sec][ptype]
272261
assertion.policy = tmp
273-
262+
274263
new_map = {}
275264
for idx, r in enumerate(assertion.policy):
276265
new_map[DEFAULT_SEP.join(r)] = idx
277266
assertion.policy_map = new_map
278267

279268
return effects
280269

281-
282270
def remove_filtered_policy(self, sec, ptype, field_index, *field_values):
283271
"""removes policy rules based on field filters from the model."""
284272
tmp = []
@@ -297,15 +285,14 @@ def remove_filtered_policy(self, sec, ptype, field_index, *field_values):
297285

298286
assertion = self[sec][ptype]
299287
assertion.policy = tmp
300-
288+
301289
new_map = {}
302290
for idx, r in enumerate(assertion.policy):
303291
new_map[DEFAULT_SEP.join(r)] = idx
304292
assertion.policy_map = new_map
305293

306294
return res
307295

308-
309296
def get_values_for_field_in_policy(self, sec, ptype, field_index):
310297
"""gets all values for a field for all rules in a policy, duplicated values are removed."""
311298
values = []
@@ -319,4 +306,4 @@ def get_values_for_field_in_policy(self, sec, ptype, field_index):
319306
if value not in values:
320307
values.append(value)
321308

322-
return values
309+
return values

0 commit comments

Comments
 (0)