@@ -279,3 +279,62 @@ def test_filtered_policy(self):
279279 self .assertTrue (e .enforce ('bob' , 'data2' , 'write' ))
280280 self .assertFalse (e .enforce ('data2_admin' , 'data2' , 'read' ))
281281 self .assertTrue (e .enforce ('data2_admin' , 'data2' , 'write' ))
282+
283+ def test_update_policy (self ):
284+ e = get_enforcer ()
285+ example_p = ['mike' , 'cookie' , 'eat' ]
286+
287+ self .assertTrue (e .enforce ('alice' , 'data1' , 'read' ))
288+ e .update_policy (['alice' , 'data1' , 'read' ], ['alice' , 'data1' , 'no_read' ])
289+ self .assertFalse (e .enforce ('alice' , 'data1' , 'read' ))
290+
291+ self .assertFalse (e .enforce ('bob' , 'data1' , 'read' ))
292+ e .add_policy (example_p )
293+ e .update_policy (example_p , ['bob' , 'data1' , 'read' ])
294+ self .assertTrue (e .enforce ('bob' , 'data1' , 'read' ))
295+
296+ self .assertFalse (e .enforce ('bob' , 'data1' , 'write' ))
297+ e .update_policy (['bob' , 'data1' , 'read' ], ['bob' , 'data1' , 'write' ])
298+ self .assertTrue (e .enforce ('bob' , 'data1' , 'write' ))
299+
300+ self .assertTrue (e .enforce ('bob' , 'data2' , 'write' ))
301+ e .update_policy (['bob' , 'data2' , 'write' ], ['bob' , 'data2' , 'read' ])
302+ self .assertFalse (e .enforce ('bob' , 'data2' , 'write' ))
303+
304+ self .assertTrue (e .enforce ('bob' , 'data2' , 'read' ))
305+ e .update_policy (['bob' , 'data2' , 'read' ], ['carl' , 'data2' , 'write' ])
306+ self .assertFalse (e .enforce ('bob' , 'data2' , 'write' ))
307+
308+ self .assertTrue (e .enforce ('carl' , 'data2' , 'write' ))
309+ e .update_policy (['carl' , 'data2' , 'write' ], ['carl' , 'data2' , 'no_write' ])
310+ self .assertFalse (e .enforce ('bob' , 'data2' , 'write' ))
311+
312+ def test_update_policies (self ):
313+ e = get_enforcer ()
314+
315+ old_rule_0 = ['alice' , 'data1' , 'read' ]
316+ old_rule_1 = ['bob' , 'data2' , 'write' ]
317+ old_rule_2 = ['data2_admin' , 'data2' , 'read' ]
318+ old_rule_3 = ['data2_admin' , 'data2' , 'write' ]
319+
320+ new_rule_0 = ['alice' , 'data_test' , 'read' ]
321+ new_rule_1 = ['bob' , 'data_test' , 'write' ]
322+ new_rule_2 = ['data2_admin' , 'data_test' , 'read' ]
323+ new_rule_3 = ['data2_admin' , 'data_test' , 'write' ]
324+
325+ old_rules = [old_rule_0 , old_rule_1 , old_rule_2 , old_rule_3 ]
326+ new_rules = [new_rule_0 , new_rule_1 , new_rule_2 , new_rule_3 ]
327+
328+ e .update_policies (old_rules , new_rules )
329+
330+ self .assertFalse (e .enforce ('alice' , 'data1' , 'read' ))
331+ self .assertTrue (e .enforce ('alice' , 'data_test' , 'read' ))
332+
333+ self .assertFalse (e .enforce ('bob' , 'data2' , 'write' ))
334+ self .assertTrue (e .enforce ('bob' , 'data_test' , 'write' ))
335+
336+ self .assertFalse (e .enforce ('data2_admin' , 'data2' , 'read' ))
337+ self .assertTrue (e .enforce ('data2_admin' , 'data_test' , 'read' ))
338+
339+ self .assertFalse (e .enforce ('data2_admin' , 'data2' , 'write' ))
340+ self .assertTrue (e .enforce ('data2_admin' , 'data_test' , 'write' ))
0 commit comments