Beispiel #1
0
    def app_workflow_permission_check(cls, app_name: str, workflow_id: int)->tuple:
        """
        appname has permission for workflow check by app_name and workflow_id
        :param app_name:
        :param workflow_id:
        :return:
        """
        if app_name == 'loonflow':
            return True, ''

        from service.workflow.workflow_permission_service import workflow_permission_service_ins
        flag, result = workflow_permission_service_ins.get_workflow_id_list_by_permission('api', 'app', app_name)

        if flag and result.get('workflow_id_list') and workflow_id in result.get('workflow_id_list'):
            return True, ''
        else:
            return False, 'the app has no permission to the workflow_id'
Beispiel #2
0
    def get(self, request, *args, **kwargs):
        """
        获取工作流列表
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        request_data = request.GET
        search_value = request_data.get('search_value', '')
        per_page = int(request_data.get('per_page', 10))
        page = int(request_data.get('page', 1))
        from_admin = int(request_data.get('from_admin', 0))  # 获取有管理权限的工作流列表
        username = request.META.get('HTTP_USERNAME')
        app_name = request.META.get('HTTP_APPNAME')

        from service.workflow.workflow_permission_service import workflow_permission_service_ins
        flag, result = workflow_permission_service_ins.get_workflow_id_list_by_permission(
            'api', 'app', app_name)

        if not flag:
            return api_response(-1, result, {})
        if not result.get('workflow_id_list'):
            data = dict(value=[], per_page=per_page, page=page, total=0)
            code, msg, = 0, ''
            return api_response(code, msg, data)
        permission_workflow_id_list = result.get('workflow_id_list')

        flag, result = workflow_base_service_ins.get_workflow_list(
            search_value, page, per_page, permission_workflow_id_list,
            username, from_admin)
        if flag is not False:
            paginator_info = result.get('paginator_info')
            data = dict(value=result.get('workflow_result_restful_list'),
                        per_page=paginator_info.get('per_page'),
                        page=paginator_info.get('page'),
                        total=paginator_info.get('total'))
            code, msg, = 0, ''
        else:
            code, data, msg = -1, '', result
        return api_response(code, msg, data)