Skip to content

Commit

Permalink
bug fix: view and intervene category ticket list return empty even co…
Browse files Browse the repository at this point in the history
…nfiged
  • Loading branch information
blackholll committed Feb 2, 2022
1 parent 4123da1 commit b92bdb4
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 10 deletions.
8 changes: 0 additions & 8 deletions service/account/account_base_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,15 +374,7 @@ def app_workflow_permission_list(cls, app_name: str)->tuple:
app_token_obj = AppToken.objects.filter(app_name=app_name, is_deleted=0).first()
if not app_token_obj:
return False, 'appname is unauthorized'
from service.workflow.workflow_permission_service import workflow_permission_service_ins


if workflow_ids:
workflow_id_list = workflow_ids.split(',')
workflow_id_list = [int(workflow_id) for workflow_id in workflow_id_list]
return True, dict(workflow_id_list=workflow_id_list)
else:
return True, dict(workflow_id_list=[])

@classmethod
@auto_log
Expand Down
21 changes: 21 additions & 0 deletions service/ticket/ticket_base_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,27 @@ def get_ticket_list(cls, sn: str='', title: str='', username: str='', create_sta
worked_query_expression = Q(ticketuser__username=username, ticketuser__worked=True)
query_params &= worked_query_expression
ticket_objects = TicketRecord.objects.filter(query_params).order_by(order_by_str).distinct()
elif category in ('view', 'intervene'):
flag, result = workflow_permission_service_ins.get_workflow_id_list_by_permission(category, 'user', username)
if not flag:
view_workflow_ids = []
else:
view_workflow_ids = result.get('workflow_id_list', [])
view_department_workflow_id_list = []
if category == 'view':
# view 还需要考虑查看权限部门,先查询用户所在部门,然后查询
flag, result = account_base_service_ins.get_user_up_dept_id_list(username)
if flag:
department_id_str_list = [str(result0) for result0 in result]
flag, result = workflow_permission_service_ins.get_workflow_id_list_by_permission(
category, 'department', ','.join(department_id_str_list))
view_department_workflow_id_list = result.get('workflow_id_list', []) if flag else []

category_workflow_ids = list(set(view_workflow_ids).union(set(view_department_workflow_id_list)))

view_query_expression = Q(workflow_id__in=category_workflow_ids)
query_params &= view_query_expression
ticket_objects = TicketRecord.objects.filter(query_params).order_by(order_by_str).distinct()
else:
ticket_objects = TicketRecord.objects.filter(query_params).order_by(order_by_str).distinct()

Expand Down
5 changes: 3 additions & 2 deletions service/workflow/workflow_permission_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def get_workflow_id_list_by_permission(self, permission, user_type, user):
获取操作权限
:param permission:
:param user_type:
:param user:
:param user: 支持多人,多部门
:return:
"""
if user_type not in ['app', 'user', 'department']:
Expand All @@ -38,7 +38,8 @@ def get_workflow_id_list_by_permission(self, permission, user_type, user):
for workflow_obj in workflow_query_set:
workflow_id_list.append(workflow_obj.id)
return True, dict(workflow_id_list=workflow_id_list)
result_queryset = WorkflowUserPermission.objects.filter(permission=permission, user_type=user_type, user=user, is_deleted=0).all()
result_queryset = WorkflowUserPermission.objects.filter(permission=permission, user_type=user_type,
user__in=user.split(','), is_deleted=0).all()
workflow_id_list = [result.workflow_id for result in result_queryset]
workflow_id_list = list(set(workflow_id_list))
return True, dict(workflow_id_list=workflow_id_list)
Expand Down

0 comments on commit b92bdb4

Please sign in to comment.