@@ -338,3 +338,62 @@ async def test_filtered_policy_with_raw_query(self):
338338 self .assertFalse (e .enforce ("bob" , "data1" , "write" ))
339339 self .assertFalse (e .enforce ("bob" , "data2" , "read" ))
340340 self .assertTrue (e .enforce ("bob" , "data2" , "write" ))
341+
342+ async def test_update_policy (self ):
343+ e = await get_enforcer ()
344+ example_p = ["mike" , "cookie" , "eat" ]
345+
346+ self .assertTrue (e .enforce ("alice" , "data1" , "read" ))
347+ await e .update_policy (["alice" , "data1" , "read" ], ["alice" , "data1" , "no_read" ])
348+ self .assertFalse (e .enforce ("alice" , "data1" , "read" ))
349+
350+ self .assertFalse (e .enforce ("bob" , "data1" , "read" ))
351+ await e .add_policy (example_p )
352+ await e .update_policy (example_p , ["bob" , "data1" , "read" ])
353+ self .assertTrue (e .enforce ("bob" , "data1" , "read" ))
354+
355+ self .assertFalse (e .enforce ("bob" , "data1" , "write" ))
356+ await e .update_policy (["bob" , "data1" , "read" ], ["bob" , "data1" , "write" ])
357+ self .assertTrue (e .enforce ("bob" , "data1" , "write" ))
358+
359+ self .assertTrue (e .enforce ("bob" , "data2" , "write" ))
360+ await e .update_policy (["bob" , "data2" , "write" ], ["bob" , "data2" , "read" ])
361+ self .assertFalse (e .enforce ("bob" , "data2" , "write" ))
362+
363+ self .assertTrue (e .enforce ("bob" , "data2" , "read" ))
364+ await e .update_policy (["bob" , "data2" , "read" ], ["carl" , "data2" , "write" ])
365+ self .assertFalse (e .enforce ("bob" , "data2" , "write" ))
366+
367+ self .assertTrue (e .enforce ("carl" , "data2" , "write" ))
368+ await e .update_policy (["carl" , "data2" , "write" ], ["carl" , "data2" , "no_write" ])
369+ self .assertFalse (e .enforce ("bob" , "data2" , "write" ))
370+
371+ async def test_update_policies (self ):
372+ e = await get_enforcer ()
373+
374+ old_rule_0 = ["alice" , "data1" , "read" ]
375+ old_rule_1 = ["bob" , "data2" , "write" ]
376+ old_rule_2 = ["data2_admin" , "data2" , "read" ]
377+ old_rule_3 = ["data2_admin" , "data2" , "write" ]
378+
379+ new_rule_0 = ["alice" , "data_test" , "read" ]
380+ new_rule_1 = ["bob" , "data_test" , "write" ]
381+ new_rule_2 = ["data2_admin" , "data_test" , "read" ]
382+ new_rule_3 = ["data2_admin" , "data_test" , "write" ]
383+
384+ old_rules = [old_rule_0 , old_rule_1 , old_rule_2 , old_rule_3 ]
385+ new_rules = [new_rule_0 , new_rule_1 , new_rule_2 , new_rule_3 ]
386+
387+ await e .update_policies (old_rules , new_rules )
388+
389+ self .assertFalse (e .enforce ("alice" , "data1" , "read" ))
390+ self .assertTrue (e .enforce ("alice" , "data_test" , "read" ))
391+
392+ self .assertFalse (e .enforce ("bob" , "data2" , "write" ))
393+ self .assertTrue (e .enforce ("bob" , "data_test" , "write" ))
394+
395+ self .assertFalse (e .enforce ("data2_admin" , "data2" , "read" ))
396+ self .assertTrue (e .enforce ("data2_admin" , "data_test" , "read" ))
397+
398+ self .assertFalse (e .enforce ("data2_admin" , "data2" , "write" ))
399+ self .assertTrue (e .enforce ("data2_admin" , "data_test" , "write" ))
0 commit comments