mirror of
https://github.com/apache/superset.git
synced 2026-04-20 16:44:46 +00:00
fix(alerts, thumbnails): celery tasks using flask-sqlalchemy sessions (#11950)
* fix(alerts, thumbnails): celery tasks using flask-sqlalchemy sessions * selenium user is case sensitive
This commit is contained in:
committed by
GitHub
parent
05258ebc6c
commit
7e6f04fce4
@@ -27,6 +27,7 @@ from flask_appbuilder.security.sqla.models import (
|
||||
assoc_permissionview_role,
|
||||
assoc_user_role,
|
||||
PermissionView,
|
||||
User,
|
||||
)
|
||||
from flask_appbuilder.security.views import (
|
||||
PermissionModelView,
|
||||
@@ -38,6 +39,7 @@ from flask_appbuilder.security.views import (
|
||||
from flask_appbuilder.widgets import ListWidget
|
||||
from sqlalchemy import and_, or_
|
||||
from sqlalchemy.engine.base import Connection
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.orm.mapper import Mapper
|
||||
from sqlalchemy.orm.query import Query as SqlaQuery
|
||||
|
||||
@@ -986,6 +988,21 @@ class SupersetSecurityManager( # pylint: disable=too-many-public-methods
|
||||
self.get_datasource_access_error_object(datasource)
|
||||
)
|
||||
|
||||
def get_user_by_username(
|
||||
self, username: str, session: Session = None
|
||||
) -> Optional[User]:
|
||||
"""
|
||||
Retrieves a user by it's username case sensitive. Optional session parameter
|
||||
utility method normally useful for celery tasks where the session
|
||||
need to be scoped
|
||||
"""
|
||||
session = session or self.get_session
|
||||
return (
|
||||
session.query(self.user_model)
|
||||
.filter(self.user_model.username == username)
|
||||
.one_or_none()
|
||||
)
|
||||
|
||||
def get_rls_filters(self, table: "BaseDatasource") -> List[SqlaQuery]:
|
||||
"""
|
||||
Retrieves the appropriate row level security filters for the current user and
|
||||
|
||||
Reference in New Issue
Block a user