44from databases import Database
55from sqlalchemy import Table
66
7- from casbin_databases_adapter .utils import to_sync
8-
97
108class Filter :
119 ptype : List [str ] = []
@@ -26,7 +24,6 @@ def __init__(self, db: Database, table: Table, filtered=False):
2624 self .table : Table = table
2725 self .filtered : bool = filtered
2826
29- @to_sync ()
3027 async def load_policy (self , model : Model ):
3128 query = self .table .select ()
3229 rows = await self .db .fetch_all (query )
@@ -35,7 +32,6 @@ async def load_policy(self, model: Model):
3532 line = [v for k , v in row .items () if k in self .cols and v is not None ]
3633 persist .load_policy_line (", " .join (line ), model )
3734
38- @to_sync ()
3935 async def save_policy (self , model : Model ):
4036 await self .db .execute (self .table .delete ())
4137 query = self .table .insert ()
@@ -54,12 +50,10 @@ async def save_policy(self, model: Model):
5450 await self .db .execute_many (query , values )
5551 return True
5652
57- @to_sync ()
5853 async def add_policy (self , sec , p_type , rule ):
5954 row = self ._policy_to_dict (p_type , rule )
6055 await self .db .execute (self .table .insert (), row )
6156
62- @to_sync ()
6357 async def remove_policy (self , sec , p_type , rule ):
6458 query = self .table .delete ().where (self .table .columns .ptype == p_type )
6559 for i , value in enumerate (rule ):
@@ -69,7 +63,6 @@ async def remove_policy(self, sec, p_type, rule):
6963
7064 return True if result > 0 else False
7165
72- @to_sync ()
7366 async def remove_filtered_policy (self , sec , ptype , field_index , * field_values ):
7467 query = self .table .delete ().where (self .table .columns .ptype == ptype )
7568 if not (0 <= field_index <= 5 ):
@@ -82,7 +75,6 @@ async def remove_filtered_policy(self, sec, ptype, field_index, *field_values):
8275 result = await self .db .execute (query )
8376 return True if result else False
8477
85- @to_sync ()
8678 async def load_filtered_policy (self , model : Model , filter_ : Filter ) -> None :
8779 query = self .table .select ().order_by (self .table .columns .id )
8880 for att , value in filter_ .__dict__ .items ():
0 commit comments