fix: remove update_charts_owners (#25843)

This commit is contained in:
Beto Dealmeida
2023-11-03 13:06:31 -04:00
committed by GitHub
parent ae619b169c
commit 60e1526f6a
4 changed files with 1 additions and 61 deletions
-9
View File
@@ -178,15 +178,6 @@ class DashboardDAO(BaseDAO[Dashboard]):
return not db.session.query(dashboard_query.exists()).scalar()
return True
@staticmethod
def update_charts_owners(model: Dashboard, commit: bool = True) -> Dashboard:
owners = list(model.owners)
for slc in model.slices:
slc.owners = list(set(owners) | set(slc.owners))
if commit:
db.session.commit()
return model
@staticmethod
def set_dash_metadata( # pylint: disable=too-many-locals
dashboard: Dashboard,
+1 -2
View File
@@ -40,8 +40,7 @@ class CreateDashboardCommand(CreateMixin, BaseCommand):
def run(self) -> Model:
self.validate()
try:
dashboard = DashboardDAO.create(attributes=self._properties, commit=False)
dashboard = DashboardDAO.update_charts_owners(dashboard, commit=True)
dashboard = DashboardDAO.create(attributes=self._properties, commit=True)
except DAOCreateFailedError as ex:
logger.exception(ex.exception)
raise DashboardCreateFailedError() from ex
-1
View File
@@ -58,7 +58,6 @@ class UpdateDashboardCommand(UpdateMixin, BaseCommand):
data=json.loads(self._properties.get("json_metadata", "{}")),
commit=False,
)
dashboard = DashboardDAO.update_charts_owners(dashboard, commit=False)
db.session.commit()
except DAOUpdateFailedError as ex:
logger.exception(ex.exception)
@@ -1378,55 +1378,6 @@ class TestDashboardApi(SupersetTestCase, ApiOwnersTestCaseMixin, InsertChartMixi
db.session.delete(model)
db.session.commit()
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_update_dashboard_chart_owners(self):
"""
Dashboard API: Test update chart owners
"""
user_alpha1 = self.create_user(
"alpha1", "password", "Alpha", email="alpha1@superset.org"
)
user_alpha2 = self.create_user(
"alpha2", "password", "Alpha", email="alpha2@superset.org"
)
admin = self.get_user("admin")
slices = []
slices.append(
db.session.query(Slice).filter_by(slice_name="Girl Name Cloud").first()
)
slices.append(db.session.query(Slice).filter_by(slice_name="Trends").first())
slices.append(db.session.query(Slice).filter_by(slice_name="Boys").first())
dashboard = self.insert_dashboard(
"title1",
"slug1",
[admin.id],
slices=slices,
)
self.login(username="admin")
uri = f"api/v1/dashboard/{dashboard.id}"
dashboard_data = {"owners": [user_alpha1.id, user_alpha2.id]}
rv = self.client.put(uri, json=dashboard_data)
self.assertEqual(rv.status_code, 200)
# verify slices owners include alpha1 and alpha2 users
slices_ids = [slice.id for slice in slices]
# Refetch Slices
slices = db.session.query(Slice).filter(Slice.id.in_(slices_ids)).all()
for slice in slices:
self.assertIn(user_alpha1, slice.owners)
self.assertIn(user_alpha2, slice.owners)
self.assertNotIn(admin, slice.owners)
# Revert owners on slice
slice.owners = []
db.session.commit()
# Rollback changes
db.session.delete(dashboard)
db.session.delete(user_alpha1)
db.session.delete(user_alpha2)
db.session.commit()
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_update_dashboard_chart_owners_propagation(self):
"""