Co-authored-by: Markus Eriksson <markus.eriksson@sinch.com>
This commit is contained in:
parent
3de2b7c989
commit
922128f6e0
|
|
@ -269,10 +269,12 @@ class ChartRestApi(BaseSupersetModelRestApi):
|
||||||
base_related_field_filters = {
|
base_related_field_filters = {
|
||||||
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
}
|
}
|
||||||
related_field_filters = {
|
related_field_filters = {
|
||||||
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
}
|
}
|
||||||
|
|
||||||
allowed_rel_fields = {"owners", "created_by", "changed_by"}
|
allowed_rel_fields = {"owners", "created_by", "changed_by"}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,12 @@ from superset.css_templates.schemas import (
|
||||||
)
|
)
|
||||||
from superset.extensions import event_logger
|
from superset.extensions import event_logger
|
||||||
from superset.models.core import CssTemplate
|
from superset.models.core import CssTemplate
|
||||||
from superset.views.base_api import BaseSupersetModelRestApi, statsd_metrics
|
from superset.views.base_api import (
|
||||||
|
BaseSupersetModelRestApi,
|
||||||
|
RelatedFieldFilter,
|
||||||
|
statsd_metrics,
|
||||||
|
)
|
||||||
|
from superset.views.filters import BaseFilterRelatedUsers, FilterRelatedOwners
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -91,6 +96,13 @@ class CssTemplateRestApi(BaseSupersetModelRestApi):
|
||||||
openapi_spec_tag = "CSS Templates"
|
openapi_spec_tag = "CSS Templates"
|
||||||
openapi_spec_methods = openapi_spec_methods_override
|
openapi_spec_methods = openapi_spec_methods_override
|
||||||
|
|
||||||
|
related_field_filters = {
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
}
|
||||||
|
base_related_field_filters = {
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
}
|
||||||
|
|
||||||
@expose("/", methods=("DELETE",))
|
@expose("/", methods=("DELETE",))
|
||||||
@protect()
|
@protect()
|
||||||
@safe
|
@safe
|
||||||
|
|
|
||||||
|
|
@ -271,6 +271,7 @@ class DashboardRestApi(BaseSupersetModelRestApi):
|
||||||
base_related_field_filters = {
|
base_related_field_filters = {
|
||||||
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"roles": [["id", BaseFilterRelatedRoles, lambda: []]],
|
"roles": [["id", BaseFilterRelatedRoles, lambda: []]],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -278,6 +279,7 @@ class DashboardRestApi(BaseSupersetModelRestApi):
|
||||||
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
"roles": RelatedFieldFilter("name", FilterRelatedRoles),
|
"roles": RelatedFieldFilter("name", FilterRelatedRoles),
|
||||||
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
}
|
}
|
||||||
allowed_rel_fields = {"owners", "roles", "created_by", "changed_by"}
|
allowed_rel_fields = {"owners", "roles", "created_by", "changed_by"}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,11 +125,13 @@ from superset.utils.oauth2 import decode_oauth2_state
|
||||||
from superset.utils.ssh_tunnel import mask_password_info
|
from superset.utils.ssh_tunnel import mask_password_info
|
||||||
from superset.views.base_api import (
|
from superset.views.base_api import (
|
||||||
BaseSupersetModelRestApi,
|
BaseSupersetModelRestApi,
|
||||||
|
RelatedFieldFilter,
|
||||||
requires_form_data,
|
requires_form_data,
|
||||||
requires_json,
|
requires_json,
|
||||||
statsd_metrics,
|
statsd_metrics,
|
||||||
)
|
)
|
||||||
from superset.views.error_handling import json_error_response
|
from superset.views.error_handling import json_error_response
|
||||||
|
from superset.views.filters import BaseFilterRelatedUsers, FilterRelatedOwners
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -304,6 +306,13 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
|
||||||
openapi_spec_methods = openapi_spec_methods_override
|
openapi_spec_methods = openapi_spec_methods_override
|
||||||
""" Overrides GET methods OpenApi descriptions """
|
""" Overrides GET methods OpenApi descriptions """
|
||||||
|
|
||||||
|
related_field_filters = {
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
}
|
||||||
|
base_related_field_filters = {
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
}
|
||||||
|
|
||||||
@expose("/<int:pk>/connection", methods=("GET",))
|
@expose("/<int:pk>/connection", methods=("GET",))
|
||||||
@protect()
|
@protect()
|
||||||
@safe
|
@safe
|
||||||
|
|
|
||||||
|
|
@ -242,10 +242,12 @@ class DatasetRestApi(BaseSupersetModelRestApi):
|
||||||
|
|
||||||
base_related_field_filters = {
|
base_related_field_filters = {
|
||||||
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"database": [["id", DatabaseFilter, lambda: []]],
|
"database": [["id", DatabaseFilter, lambda: []]],
|
||||||
}
|
}
|
||||||
related_field_filters = {
|
related_field_filters = {
|
||||||
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
"database": "database_name",
|
"database": "database_name",
|
||||||
}
|
}
|
||||||
search_filters = {
|
search_filters = {
|
||||||
|
|
|
||||||
|
|
@ -144,11 +144,13 @@ class QueryRestApi(BaseSupersetModelRestApi):
|
||||||
]
|
]
|
||||||
base_related_field_filters = {
|
base_related_field_filters = {
|
||||||
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"user": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"user": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"database": [["id", DatabaseFilter, lambda: []]],
|
"database": [["id", DatabaseFilter, lambda: []]],
|
||||||
}
|
}
|
||||||
related_field_filters = {
|
related_field_filters = {
|
||||||
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
"user": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"user": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,9 +56,11 @@ from superset.queries.saved_queries.schemas import (
|
||||||
from superset.utils import json
|
from superset.utils import json
|
||||||
from superset.views.base_api import (
|
from superset.views.base_api import (
|
||||||
BaseSupersetModelRestApi,
|
BaseSupersetModelRestApi,
|
||||||
|
RelatedFieldFilter,
|
||||||
requires_form_data,
|
requires_form_data,
|
||||||
statsd_metrics,
|
statsd_metrics,
|
||||||
)
|
)
|
||||||
|
from superset.views.filters import BaseFilterRelatedUsers, FilterRelatedOwners
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -179,8 +181,12 @@ class SavedQueryRestApi(BaseSupersetModelRestApi):
|
||||||
|
|
||||||
related_field_filters = {
|
related_field_filters = {
|
||||||
"database": "database_name",
|
"database": "database_name",
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
}
|
||||||
|
base_related_field_filters = {
|
||||||
|
"database": [["id", DatabaseFilter, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
}
|
}
|
||||||
base_related_field_filters = {"database": [["id", DatabaseFilter, lambda: []]]}
|
|
||||||
allowed_rel_fields = {"database", "changed_by", "created_by"}
|
allowed_rel_fields = {"database", "changed_by", "created_by"}
|
||||||
allowed_distinct_fields = {"catalog", "schema"}
|
allowed_distinct_fields = {"catalog", "schema"}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -228,6 +228,7 @@ class ReportScheduleRestApi(BaseSupersetModelRestApi):
|
||||||
"database": [["id", DatabaseFilter, lambda: []]],
|
"database": [["id", DatabaseFilter, lambda: []]],
|
||||||
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"owners": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
}
|
}
|
||||||
text_field_rel_fields = {
|
text_field_rel_fields = {
|
||||||
"dashboard": "dashboard_title",
|
"dashboard": "dashboard_title",
|
||||||
|
|
@ -239,6 +240,7 @@ class ReportScheduleRestApi(BaseSupersetModelRestApi):
|
||||||
"chart": "slice_name",
|
"chart": "slice_name",
|
||||||
"database": "database_name",
|
"database": "database_name",
|
||||||
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"owners": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,15 @@ from superset.row_level_security.schemas import (
|
||||||
from superset.views.base import DatasourceFilter
|
from superset.views.base import DatasourceFilter
|
||||||
from superset.views.base_api import (
|
from superset.views.base_api import (
|
||||||
BaseSupersetModelRestApi,
|
BaseSupersetModelRestApi,
|
||||||
|
RelatedFieldFilter,
|
||||||
requires_json,
|
requires_json,
|
||||||
statsd_metrics,
|
statsd_metrics,
|
||||||
)
|
)
|
||||||
from superset.views.filters import BaseFilterRelatedRoles
|
from superset.views.filters import (
|
||||||
|
BaseFilterRelatedRoles,
|
||||||
|
BaseFilterRelatedUsers,
|
||||||
|
FilterRelatedOwners,
|
||||||
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -129,9 +134,13 @@ class RLSRestApi(BaseSupersetModelRestApi):
|
||||||
edit_model_schema = RLSPutSchema()
|
edit_model_schema = RLSPutSchema()
|
||||||
|
|
||||||
allowed_rel_fields = {"tables", "roles", "created_by", "changed_by"}
|
allowed_rel_fields = {"tables", "roles", "created_by", "changed_by"}
|
||||||
|
related_field_filters = {
|
||||||
|
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
|
}
|
||||||
base_related_field_filters = {
|
base_related_field_filters = {
|
||||||
"tables": [["id", DatasourceFilter, lambda: []]],
|
"tables": [["id", DatasourceFilter, lambda: []]],
|
||||||
"roles": [["id", BaseFilterRelatedRoles, lambda: []]],
|
"roles": [["id", BaseFilterRelatedRoles, lambda: []]],
|
||||||
|
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
|
||||||
}
|
}
|
||||||
|
|
||||||
openapi_spec_methods = openapi_spec_methods_override
|
openapi_spec_methods = openapi_spec_methods_override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue