Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions superset-frontend/src/pages/SavedQueryList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,22 @@ function SavedQueryList({
size: 'xl',
id: 'changed_on_delta_humanized',
},
{
accessor: 'created_by.first_name',
Header: t('Created by'),
disableSortBy: true,
size: 'xl',
Cell: ({
row: {
original: { created_by: createdBy },
},
}: any) =>
createdBy ? `${createdBy.first_name} ${createdBy.last_name}` : '',
},
{
accessor: 'created_by',
hidden: true,
},
{
Cell: ({ row: { original } }: any) => {
const handlePreview = () => {
Expand Down Expand Up @@ -589,6 +605,26 @@ function SavedQueryList({
),
paginate: true,
},
{
Header: t('Created by'),
key: 'created_by',
id: 'created_by',
input: 'select',
operator: FilterOperator.RelationOneMany,
unfilteredLabel: t('All'),
fetchSelects: createFetchRelated(
'saved_query',
'created_by',
createErrorHandler(errMsg =>
t(
'An error occurred while fetching created_by values: %s',
errMsg,
),
),
user,
),
paginate: true,
},
],
[addDangerToast],
);
Expand Down
2 changes: 2 additions & 0 deletions superset/queries/saved_queries/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,12 @@ class SavedQueryRestApi(BaseSupersetModelRestApi):
related_field_filters = {
"database": "database_name",
"changed_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
}
base_related_field_filters = {
"database": [["id", DatabaseFilter, lambda: []]],
"changed_by": [["id", BaseFilterRelatedUsers, lambda: []]],
"created_by": [["id", BaseFilterRelatedUsers, lambda: []]],
}
allowed_rel_fields = {"database", "changed_by", "created_by"}
allowed_distinct_fields = {"catalog", "schema"}
Expand Down
9 changes: 6 additions & 3 deletions superset/queries/saved_queries/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from sqlalchemy import or_
from sqlalchemy.orm.query import Query

from superset import security_manager
from superset.models.sql_lab import SavedQuery
from superset.tags.filters import BaseTagIdFilter, BaseTagNameFilter
from superset.views.base import BaseFilter
Expand Down Expand Up @@ -86,6 +87,8 @@ def apply(self, query: BaseQuery, value: Any) -> BaseQuery:

:returns: flask-sqlalchemy query
"""
return query.filter(
SavedQuery.created_by == g.user # pylint: disable=comparison-with-callable
)
if not security_manager.can_access_all_queries():
query = query.filter(
SavedQuery.created_by == g.user # pylint: disable=comparison-with-callable
)
return query
Loading