db_data_scope.py 796 B

123456789101112131415161718192021222324252627
  1. """DB 地磅模块数据权限辅助(create_by / create_dept_id)。"""
  2. from __future__ import annotations
  3. from typing import TYPE_CHECKING
  4. from sqlalchemy.orm import Session
  5. from app.core.data_scope import apply_data_scope, assert_row_in_data_scope
  6. if TYPE_CHECKING:
  7. from app.core.db_auth import DbUserContext
  8. def apply_db_scope(query, model, user: "DbUserContext", db: Session, tenant_no: str):
  9. """列表/统计查询应用数据权限。"""
  10. return apply_data_scope(query, model, user.to_user_info(), db, tenant_no)
  11. def assert_db_row_in_scope(
  12. db: Session,
  13. row,
  14. model,
  15. user: "DbUserContext",
  16. tenant_no: str,
  17. ) -> None:
  18. """详情/改/删前校验行级数据权限。"""
  19. assert_row_in_data_scope(db, row, model, user.to_user_info(), tenant_no)