@@ -371,7 +371,7 @@ class DataSource(BelongsToOrgMixin, db.Model):
371371 __tablename__ = 'data_sources'
372372 __table_args__ = (db .Index ('data_sources_org_id_name' , 'org_id' , 'name' ),)
373373
374- def to_dict (self , all = False , with_permissions = False ):
374+ def to_dict (self , all = False , with_permissions_for = None ):
375375 d = {
376376 'id' : self .id ,
377377 'name' : self .name ,
@@ -389,8 +389,10 @@ def to_dict(self, all=False, with_permissions=False):
389389 d ['scheduled_queue_name' ] = self .scheduled_queue_name
390390 d ['groups' ] = self .groups
391391
392- if with_permissions :
393- d ['view_only' ] = self .data_source_groups .view_only
392+ if with_permissions_for is not None :
393+ d ['view_only' ] = db .session .query (DataSourceGroup .view_only ).filter (
394+ DataSourceGroup .group == with_permissions_for ,
395+ DataSourceGroup .data_source == self ).get ()
394396
395397 return d
396398
@@ -438,17 +440,20 @@ def resume(self):
438440 redis_connection .delete (self ._pause_key ())
439441
440442 def add_group (self , group , view_only = False ):
441- dsg = DataSourceGroup . create (group = group , data_source = self , view_only = view_only )
442- setattr ( self , 'data_source_groups' , dsg )
443+ dsg = DataSourceGroup (group = group , data_source = self , view_only = view_only )
444+ db . session . add ( dsg )
443445
444446 def remove_group (self , group ):
445- DataSourceGroup .delete ().where (DataSourceGroup .group == group , DataSourceGroup .data_source == self ).execute ()
447+ db .session .query (DataSourceGroup ).filter (
448+ DataSourceGroup .group == group ,
449+ DataSourceGroup .data_source == self ).delete ()
446450
447451 def update_group_permission (self , group , view_only ):
448- dsg = DataSourceGroup .get (DataSourceGroup .group == group , DataSourceGroup .data_source == self )
452+ dsg = db .session .query (DataSourceGroup ).filter (
453+ DataSourceGroup .group == group ,
454+ DataSourceGroup .data_source == self )
449455 dsg .view_only = view_only
450- dsg .save ()
451- setattr (self , 'data_source_groups' , dsg )
456+ db .session .add (dsg )
452457
453458 @property
454459 def query_runner (self ):
0 commit comments