fix: 补全审计/出库审批/采购管理/借库审批的权限保护+公司隔离

- audit.py: 补@permission_required(system_audit)+import, 审计日志通过split_part关联用户表过滤公司
- outbound.py: 出库审批5个端点全补@permission_required(outbound_list)
- purchase.py: 采购管理7个端点全补@permission_required(inbound_buy)
- borrow_service: 借库审批列表通过applicant_id关联用户表过滤公司
- outbound_service: 出库审批列表通过applicant_id关联用户表过滤公司
- purchase_service: 采购列表通过base_id+requester_id双路过滤公司
- base_service/search_material: 去除debug日志
- decorators: 去除debug日志
This commit is contained in:
yueli
2026-07-15 11:49:53 +08:00
parent 8d78ed9306
commit 9988d1b7eb
6 changed files with 62 additions and 6 deletions

View File

@ -26,6 +26,7 @@ def get_current_user_role():
# --------------------------------------------------------
@purchase_bp.route('', methods=['GET'])
@jwt_required()
@permission_required('inbound_buy')
def get_purchase_list():
"""获取采购申请列表"""
try:
@ -59,6 +60,7 @@ def get_purchase_list():
# --------------------------------------------------------
@purchase_bp.route('', methods=['POST'])
@jwt_required()
@permission_required('inbound_buy')
def create_purchase_request():
"""创建采购申请"""
try:
@ -100,6 +102,7 @@ def create_purchase_request():
# --------------------------------------------------------
@purchase_bp.route('/<int:purchase_id>', methods=['GET'])
@jwt_required()
@permission_required('inbound_buy')
def get_purchase_detail(purchase_id):
"""获取采购申请详情"""
try:
@ -125,6 +128,7 @@ def get_purchase_detail(purchase_id):
# --------------------------------------------------------
@purchase_bp.route('/<int:purchase_id>/approve', methods=['PATCH'])
@jwt_required()
@permission_required('inbound_buy')
def approve_purchase_request(purchase_id):
"""审批采购申请"""
try:
@ -167,6 +171,7 @@ def approve_purchase_request(purchase_id):
# --------------------------------------------------------
@purchase_bp.route('/approvers', methods=['GET'])
@jwt_required()
@permission_required('inbound_buy')
def get_purchase_approvers():
"""获取可选审批人列表(主管+超管)"""
try:
@ -194,6 +199,7 @@ def get_purchase_approvers():
# --------------------------------------------------------
@purchase_bp.route('/auto-fill', methods=['GET'])
@jwt_required()
@permission_required('inbound_buy')
def auto_fill_purchase():
"""根据名称或规格自动补全另一个字段"""
try:
@ -237,6 +243,7 @@ def get_approved_unstocked_requests():
# --------------------------------------------------------
@purchase_bp.route('/search-material', methods=['GET'])
@jwt_required()
@permission_required('inbound_buy')
def search_material_for_purchase():
"""物料基础信息搜索接口,支持分页,用于采购申请弹窗"""
try: