安全:隔离报表选项扫码与首页数据
This commit is contained in:
@@ -8,6 +8,7 @@ from exceptions.exception import ServiceException
|
||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||
from module_business.dao.access_dao import AccessDao
|
||||
from module_business.dao.report_dao import ReportDao
|
||||
from module_business.domain.test_batch_scope import TestBatchScope
|
||||
from module_business.entity.vo.report_vo import (
|
||||
ConsumptionReportModel,
|
||||
ConsumptionReportQueryModel,
|
||||
@@ -44,10 +45,11 @@ class ReportService:
|
||||
cls,
|
||||
query_db: AsyncSession,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> list[int] | None:
|
||||
if cls._is_admin(current_user):
|
||||
return None
|
||||
warehouse_ids = await AccessDao.list_user_warehouse_ids(query_db, cls._user_id(current_user))
|
||||
warehouse_ids = await AccessDao.list_user_warehouse_ids(query_db, cls._user_id(current_user), test_scope)
|
||||
return sorted(set(warehouse_ids))
|
||||
|
||||
@classmethod
|
||||
@@ -55,10 +57,11 @@ class ReportService:
|
||||
cls,
|
||||
query_db: AsyncSession,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> list[int] | None:
|
||||
if cls._is_admin(current_user):
|
||||
return None
|
||||
site_ids = await AccessDao.list_user_site_ids(query_db, cls._user_id(current_user))
|
||||
site_ids = await AccessDao.list_user_site_ids(query_db, cls._user_id(current_user), test_scope)
|
||||
return sorted(set(site_ids))
|
||||
|
||||
@classmethod
|
||||
@@ -66,12 +69,13 @@ class ReportService:
|
||||
cls,
|
||||
query_db: AsyncSession,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> tuple[list[int] | None, list[int] | None]:
|
||||
if cls._is_admin(current_user):
|
||||
return None, None
|
||||
return (
|
||||
await cls._warehouse_scope(query_db, current_user),
|
||||
await cls._site_scope(query_db, current_user),
|
||||
await cls._warehouse_scope(query_db, current_user, test_scope),
|
||||
await cls._site_scope(query_db, current_user, test_scope),
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
@@ -95,13 +99,15 @@ class ReportService:
|
||||
query_db: AsyncSession,
|
||||
query_object: PalletInventoryReportQueryModel,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> PageModel[PalletInventoryReportModel]:
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user)
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user, test_scope)
|
||||
if warehouse_ids == [] and site_ids == []:
|
||||
return cls._empty_page(query_object)
|
||||
page = await ReportDao.get_pallet_inventory_list(
|
||||
query_db,
|
||||
query_object,
|
||||
test_scope,
|
||||
warehouse_ids=warehouse_ids,
|
||||
site_ids=site_ids,
|
||||
)
|
||||
@@ -113,13 +119,15 @@ class ReportService:
|
||||
query_db: AsyncSession,
|
||||
query_object: FillingReportQueryModel,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> PageModel[FillingReportModel]:
|
||||
warehouse_ids = await cls._warehouse_scope(query_db, current_user)
|
||||
warehouse_ids = await cls._warehouse_scope(query_db, current_user, test_scope)
|
||||
if warehouse_ids == []:
|
||||
return cls._empty_page(query_object)
|
||||
page = await ReportDao.get_filling_report_list(
|
||||
query_db,
|
||||
query_object,
|
||||
test_scope,
|
||||
warehouse_ids=warehouse_ids,
|
||||
)
|
||||
return cls._convert_page(page, FillingReportModel)
|
||||
@@ -130,13 +138,15 @@ class ReportService:
|
||||
query_db: AsyncSession,
|
||||
query_object: ShipmentReportQueryModel,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> PageModel[ShipmentReportModel]:
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user)
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user, test_scope)
|
||||
if warehouse_ids == [] or site_ids == []:
|
||||
return cls._empty_page(query_object)
|
||||
page = await ReportDao.get_shipment_report_list(
|
||||
query_db,
|
||||
query_object,
|
||||
test_scope,
|
||||
warehouse_ids=warehouse_ids,
|
||||
site_ids=site_ids,
|
||||
)
|
||||
@@ -148,13 +158,15 @@ class ReportService:
|
||||
query_db: AsyncSession,
|
||||
query_object: ConsumptionReportQueryModel,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> PageModel[ConsumptionReportModel]:
|
||||
site_ids = await cls._site_scope(query_db, current_user)
|
||||
site_ids = await cls._site_scope(query_db, current_user, test_scope)
|
||||
if site_ids == []:
|
||||
return cls._empty_page(query_object)
|
||||
page = await ReportDao.get_consumption_report_list(
|
||||
query_db,
|
||||
query_object,
|
||||
test_scope,
|
||||
site_ids=site_ids,
|
||||
)
|
||||
return cls._convert_page(page, ConsumptionReportModel)
|
||||
@@ -165,13 +177,15 @@ class ReportService:
|
||||
query_db: AsyncSession,
|
||||
query_object: ReturnReportQueryModel,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> PageModel[ReturnReportModel]:
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user)
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user, test_scope)
|
||||
if warehouse_ids == [] and site_ids == []:
|
||||
return cls._empty_page(query_object)
|
||||
page = await ReportDao.get_return_report_list(
|
||||
query_db,
|
||||
query_object,
|
||||
test_scope,
|
||||
site_ids=site_ids,
|
||||
warehouse_ids=warehouse_ids,
|
||||
)
|
||||
@@ -183,13 +197,15 @@ class ReportService:
|
||||
query_db: AsyncSession,
|
||||
query_object: PalletTraceReportQueryModel,
|
||||
current_user: CurrentUserModel,
|
||||
test_scope: TestBatchScope,
|
||||
) -> PageModel[PalletTraceReportModel]:
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user)
|
||||
warehouse_ids, site_ids = await cls._scopes(query_db, current_user, test_scope)
|
||||
if warehouse_ids == [] and site_ids == []:
|
||||
return cls._empty_page(query_object)
|
||||
page = await ReportDao.get_pallet_trace_list(
|
||||
query_db,
|
||||
query_object,
|
||||
test_scope,
|
||||
warehouse_ids=warehouse_ids,
|
||||
site_ids=site_ids,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user