本卡屬 FR-114 資安修正(母卡 CM-2019),第 3 批「刪除沒人用的」卡 3-2,修 SUMMARY #68/#69/#120(出自 M10-task-platform)。中。SUMMARY 標「裁定刪除」,查無獨立內化工單;修法規格來自本批查證,計畫在 docs/features/FR-114-2609-security-fix-dispatch/batches/plan-b3.md「卡 N-2」段。
#68:群組層成員的新增/修改/刪除三支程式,因系統啟動時漏接一條線而整支完全不檢查權限,而這張表被拿來算「哪些專案我看得到」。#69:流程參與者的新增/修改/刪除是一整組從沒啟用過的功能,把關檢查寫在永遠跑不到的位置——現在擋住它的是它本身就壞著。#120:四支任務指派相關功能沒有對外入口、也沒有任何把關,已裁定刪除其中三支,第四支是配套用的留著。三件查證後確認都是零呼叫(沒有任何路由、前端、DI 容器在用),已裁定整塊移除。
首腦核對:
【#68 群組層成員管理,整支刪除】
jedi_task_platform/participant/app/service/project_group_participant_service.py:62-87 add_project_group_participant()
jedi_task_platform/participant/app/service/project_group_participant_service.py:90-114 update_project_group_participant()
jedi_task_platform/participant/app/service/project_group_participant_service.py:117-131 delete_project_group_participant()
di_containers/flow_engine/project_participant_containers.py:113-117 漏接 participant_role_service 的那個 Factory(連同其呼叫的三支一起刪,不補接線)
【#68 保留,不動】
jedi_task_platform/participant/app/service/project_group_participant_service.py:25-29 get_project_group_participants()(AI 儀表板在用)
jedi_task_platform/participant/app/service/project_group_participant_service.py:36-59 4 支 menu/with_inherits 查詢方法
jedi_task_platform/participant/app/service/project_group_participant_service.py:134-136 delete_by_project_id()
di_containers/dashboard_apis/participant.py:96-107 AI 儀表板呼叫端(不動)
【#69 流程參與者管理,整支刪除】
process_participant_service.py:60-80 add_process_participant()
process_participant_service.py:83-101 update_process_participant()
process_participant_service.py:104-124 delete_process_participant()
process_participant_service.py:49-57 _assert_manager_for_process()(成孤兒的壞掉守門 helper,一併刪)
【#69 保留,不動】
process_participant_service.py:45-47 get_process_participants()(AI 儀表板在用)
process_participant_service.py:127-136 get_process_participant_menus()
process_participant_service.py:139-165 get_process_participants_with_inherits()
process_participant_service.py:168-170 delete_by_project_id()
api/flow_engine/serializers/flow_engine/workflow_execution.py:6 import ProcessParticipantResponse(不可刪這個 DTO/serializer)
di_containers/flow_engine/workflow_excution_containers.py:142 整支 service 注入處(注入本身留著,只是確認流程執行不呼叫被刪的 3 支)
【#120 任務指派功能,部分刪除】
task_assignee_service.py:74-91 get_task_assignee_menu()
task_assignee_service.py:94-132 get_task_assignees_with_inherits()
task_assignee_service.py:135-137 get_user_task_queue()(v1 舊版,已被 my_grc_jobs_query.py:70 取代)
participant/domain/service/task_assignee_domain_service.py:49-50 get_user_task_queue() 下游孤兒
participant/domain/repository/task_assignee.py:29 get_user_task_queue() 下游孤兒
participant/infra/repository/task_assignee_repo_impl.py:25 get_user_task_queue() 下游孤兒
【#120 保留,不准刪,皆有活路由】
task_assignee_service.py:69-72 get_task_assignees() route task_assignee_route.py:50
task_assignee_service.py:140-173 add_task_assignee() route task_assignee_route.py:66
task_assignee_service.py:175-191 batch_add_task_assignees() route task_assignee_route.py:27 —— 🔴 FE 快速配置正在打,不准刪
task_assignee_service.py:193-232 update_task_assignee() route task_assignee_route.py:81
task_assignee_service.py:234-258 delete_task_assignee() route task_assignee_route.py:102
task_assignee_service.py:260-262 delete_by_project_id()(6 支同名手足方法之一,不動)