fix: Users being able to update datasets across DBs (#17348)

* add database id back

* add condition to verify dataset is being changed

* Update superset/datasets/dao.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
This commit is contained in:
Hugh A. Miles II
2021-11-10 19:45:48 -05:00
committed by GitHub
parent 1beda796f2
commit a1961cfc6f
3 changed files with 16 additions and 4 deletions

View File

@@ -147,6 +147,7 @@ const ResultSetErrorMessage = styled.div`
`;
const updateDataset = async (
dbId: number,
datasetId: number,
sql: string,
columns: Array<Record<string, any>>,
@@ -159,6 +160,7 @@ const updateDataset = async (
sql,
columns,
owners,
database_id: dbId,
});
const data: JsonResponse = await SupersetClient.put({
@@ -272,10 +274,11 @@ export default class ResultSet extends React.PureComponent<
};
handleOverwriteDataset = async () => {
const { sql, results } = this.props.query;
const { sql, results, dbId } = this.props.query;
const { datasetToOverwrite } = this.state;
await updateDataset(
dbId,
datasetToOverwrite.datasetId,
sql,
results.selected_columns.map(d => ({ column_name: d.name })),