@@ -127,12 +127,15 @@ def filter_query(self, querydb, filter):
127
127
)
128
128
return querydb .order_by (self ._db_class .id )
129
129
130
- def _save_policy_line (self , ptype , rule ):
131
- with self ._session_scope () as session :
132
- line = self . _db_class ( ptype = ptype )
133
- for i , v in enumerate ( rule ):
134
- setattr ( line , "v{}" . format ( i ), v )
130
+ def _save_policy_line (self , ptype , rule , session = None ):
131
+ line = self ._db_class ( ptype = ptype )
132
+ for i , v in enumerate ( rule ):
133
+ setattr ( line , "v{}" . format ( i ) , v )
134
+ if session :
135
135
session .add (line )
136
+ else :
137
+ with self ._session_scope () as session :
138
+ session .add (line )
136
139
137
140
def save_policy (self , model ):
138
141
"""saves all policy rules to the storage."""
@@ -144,7 +147,7 @@ def save_policy(self, model):
144
147
continue
145
148
for ptype , ast in model .model [sec ].items ():
146
149
for rule in ast .policy :
147
- self ._save_policy_line (ptype , rule )
150
+ self ._save_policy_line (ptype , rule , session = session )
148
151
return True
149
152
150
153
def add_policy (self , sec , ptype , rule ):
0 commit comments