forked from apache/superset
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add schema level access control on csv upload (apache#5787)
* Add schema level access control on csv upload * add db migrate merge point * fix flake 8 * fix test * remove unnecessary db migration * fix flake * nit * fix test for test_schemas_access_for_csv_upload_endpoint * fix test_csv_import test * use security_manager to check whether schema is allowed to be accessed * bring security manager to the party * flake8 & repush to retrigger test * address comments * remove trailing comma (cherry picked from commit b6d7d57)
- Loading branch information
Showing
11 changed files
with
224 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
46 changes: 46 additions & 0 deletions
46
superset/templates/superset/form_view/csv_to_database_view/edit.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
{% extends 'appbuilder/general/model/edit.html' %} | ||
|
||
{% block tail_js %} | ||
{{ super() }} | ||
<script> | ||
var db = $("#con"); | ||
var schema = $("#schema"); | ||
|
||
// this element is a text input | ||
// copy it here so it can be reused later | ||
var any_schema_is_allowed = schema.clone(); | ||
|
||
update_schemas_allowed_for_csv_upload(db.val()); | ||
db.change(function(){ | ||
update_schemas_allowed_for_csv_upload(db.val()); | ||
}); | ||
|
||
function update_schemas_allowed_for_csv_upload(db_id) { | ||
$.ajax({ | ||
method: "GET", | ||
url: "/superset/schema_access_for_csv_upload", | ||
data: {db_id: db_id}, | ||
dataType: 'json', | ||
contentType: "application/json; charset=utf-8" | ||
}).done(function(data) { | ||
change_schema_field_in_formview(data) | ||
}).fail(function(error) { | ||
var errorMsg = error.responseJSON.error; | ||
alert("ERROR: " + errorMsg); | ||
}); | ||
} | ||
|
||
function change_schema_field_in_formview(schemas_allowed){ | ||
if (schemas_allowed && schemas_allowed.length > 0) { | ||
var dropdown_schema_lists = '<select id="schema" name="schema" required>'; | ||
schemas_allowed.forEach(function(schema_allowed) { | ||
dropdown_schema_lists += ('<option value="' + schema_allowed + '">' + schema_allowed + '</option>'); | ||
}); | ||
dropdown_schema_lists += '</select>'; | ||
$("#schema").replaceWith(dropdown_schema_lists); | ||
} else { | ||
$("#schema").replaceWith(any_schema_is_allowed) | ||
} | ||
} | ||
</script> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,4 +4,5 @@ | |
{% block tail_js %} | ||
{{ super() }} | ||
{{ macros.testconn() }} | ||
{{ macros.expand_extra_textarea() }} | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,4 +4,5 @@ | |
{% block tail_js %} | ||
{{ super() }} | ||
{{ macros.testconn() }} | ||
{{ macros.expand_extra_textarea() }} | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.