def get_workflow_manage_list(cls, username: str) -> tuple: """ 获取有管理权限的工作流列表 :param username: :return: """ # 如果是admin,拥有所有工作流的权限 flag, result = account_base_service_ins.admin_permission_check( username=username) if flag: workflow_queryset = Workflow.objects.filter(is_deleted=0).all() else: # 作为工作流创建人+工作流管理员的工作流 workflow_admin_queryset = WorkflowAdmin.objects.filter( username=username, is_deleted=0).all() workflow_admin_id_list = [ workflow_admin.workflow_id for workflow_admin in workflow_admin_queryset ] workflow_queryset = Workflow.objects.filter( Q(creator=username, is_deleted=0) | Q(id__in=workflow_admin_id_list, is_deleted=0)).all() workflow_restful_list = [ workflow.get_dict() for workflow in workflow_queryset ] return True, dict(workflow_list=workflow_restful_list)
def patch(self, request, *args, **kwargs): """ 修改通知 :param request: :param args: :param kwargs: :return: """ notice_id = kwargs.get('notice_id') json_str = request.body.decode('utf-8') if not json_str: return api_response(-1, 'post参数为空', {}) request_data_dict = json.loads(json_str) name = request_data_dict.get('name', '') description = request_data_dict.get('description', '') hook_url = request_data_dict.get('hook_url', '') hook_token = request_data_dict.get('hook_token', '') creator = request.user.username flag, result = account_base_service_ins.admin_permission_check(creator) if flag is False: return api_response(-1, result, {}) result, msg = workflow_custom_notice_service_ins.update_custom_notice( notice_id, name, description, hook_url, hook_token) if result is not False: data = {} code, msg, = 0, '' else: code, data = -1, {} return api_response(code, msg, data)
def _deco(view_class, request, *args, **kwargs): username = request.META.get('HTTP_USERNAME') if permission == 'admin': flag, result = account_base_service_ins.admin_permission_check( username) if flag is False: return api_response(-1, 'has no permission:{}'.format(result), {}) elif permission == 'workflow_admin': flag, result = account_base_service_ins.workflow_admin_permission_check( username) if flag is False: return api_response(-1, 'has no permission:{}'.format(result), {}) return func(view_class, request, *args, **kwargs)
def post(self, request, *args, **kwargs): """ add notice record 新增通知记录 :param request: :param args: :param kwargs: :return: """ json_str = request.body.decode('utf-8') if not json_str: return api_response(-1, 'post参数为空', {}) request_data_dict = json.loads(json_str) creator = request.META.get('HTTP_USERNAME') name = request_data_dict.get('name', '') description = request_data_dict.get('description', '') type_id = request_data_dict.get('type_id', 1) hook_url = request_data_dict.get('hook_url', '') hook_token = request_data_dict.get('hook_token', '') corpid = request_data_dict.get('corpid', '') corpsecret = request_data_dict.get('corpsecret', '') appkey = request_data_dict.get('appkey', '') appsecret = request_data_dict.get('appsecret', '') flag, result = account_base_service_ins.admin_permission_check(creator) if flag is False: return api_response(-1, result, {}) result, msg = workflow_custom_notice_service_ins.add_custom_notice( name, description, type_id, corpid, corpsecret, appkey, appsecret, hook_url, hook_token, creator) if result is not False: data = msg code, msg, = 0, '' else: code, data = -1, {} return api_response(code, msg, data)