feat: introduce Subject model and entity editors/viewers (#38831)

This commit is contained in:
Ville Brofeldt
2026-07-08 11:00:03 -07:00
committed by GitHub
parent 01e872c105
commit 33f0fc93ed
477 changed files with 28198 additions and 19018 deletions

View File

@@ -128,7 +128,7 @@ from superset.dashboards.commands.create import CreateDashboardCommand
def test_create_dashboard_success():
properties = {
"dashboard_title": "Test Dashboard",
"owners": [1]
"editors": [1]
}
command = CreateDashboardCommand(properties)
@@ -275,9 +275,11 @@ def handle_validation_error(error):
from typing import List, Optional, Dict, Any
from superset.models.dashboard import Dashboard
def get_dashboards_by_owner(owner_id: int) -> List[Dashboard]:
"""Get all dashboards owned by a specific user"""
return db.session.query(Dashboard).filter_by(owner_id=owner_id).all()
def get_dashboards_by_editor(editor_id: int) -> List[Dashboard]:
"""Get all dashboards editable by a specific subject"""
return db.session.query(Dashboard).filter(
Dashboard.editors.any(id=editor_id)
).all()
def create_dashboard(properties: Dict[str, Any]) -> Optional[Dashboard]:
"""Create a new dashboard with the given properties"""

View File

@@ -153,10 +153,10 @@ class DashboardDAO:
return db.session.query(Dashboard).filter_by(slug=slug).first()
@classmethod
def find_by_owner(cls, owner_id: int) -> List[Dashboard]:
"""Find all dashboards owned by a user"""
return db.session.query(Dashboard).filter_by(
created_by_fk=owner_id
def find_by_editor(cls, editor_id: int) -> List[Dashboard]:
"""Find all dashboards editable by a subject"""
return db.session.query(Dashboard).filter(
Dashboard.editors.any(id=editor_id)
).all()
@classmethod