Set owner when creating SQL Lab view (#8597)

* Set owner when creating SQL Lab view

* Add unit test

* Small fix
This commit is contained in:
Beto Dealmeida 2019-11-19 10:48:42 -08:00 committed by GitHub
parent 3b13fb4143
commit 3b97ae3b9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -2293,7 +2293,7 @@ class Superset(BaseSupersetView):
table_name = data.get("datasourceName")
table = db.session.query(SqlaTable).filter_by(table_name=table_name).first()
if not table:
table = SqlaTable(table_name=table_name)
table = SqlaTable(table_name=table_name, owners=[g.user])
table.database_id = data.get("dbId")
table.schema = data.get("schema")
table.template_params = data.get("templateParams")

View File

@ -21,6 +21,7 @@ from datetime import datetime, timedelta
import prison
from superset import db, security_manager
from superset.connectors.sqla.models import SqlaTable
from superset.dataframe import SupersetDataFrame
from superset.db_engine_specs import BaseEngineSpec
from superset.models.sql_lab import Query
@ -289,6 +290,7 @@ class SqlLabTests(SupersetTestCase):
self.assertEqual(len(cols), len(cdf.columns))
def test_sqllab_viz(self):
self.login("admin")
examples_dbid = get_example_database().id
payload = {
"chartType": "dist_bar",
@ -319,6 +321,11 @@ class SqlLabTests(SupersetTestCase):
resp = self.get_json_resp("/superset/sqllab_viz/", data=data)
self.assertIn("table_id", resp)
# ensure owner is set correctly
table_id = resp["table_id"]
table = db.session.query(SqlaTable).filter_by(id=table_id).one()
self.assertEqual([owner.username for owner in table.owners], ["admin"])
def test_sql_limit(self):
self.login("admin")
test_limit = 1