def generate_report(self, task_id): """ 生成邮件发送报告 :param cls: :param task_id: :return: """ current_task = TaskService.get_fields_by_where(where=(Task.id == task_id))[0] vulns_info = VulnerabilityService.get_fields_by_where(where=(Vulnerability.task_id == task_id)) users = UserService.get_users(task_id=task_id) if len(vulns_info) <= 0: content = """<br>你好,欢迎使用Hunter,本次扫描结束,扫描到你有0个漏洞。详情请可登录{}查看<br>""".format( get_system_config()['front_end']['index']) else: content = """<br>你好,欢迎使用Hunter,本次扫描结束,扫描到你有{}个漏洞。任务预览如下,详情请登录{}查看<br>""".format(len(vulns_info), get_system_config()[ 'front_end'][ 'index']) content += """ <table frame='border' cellpadding='15' cellspacing='0' align='center' style='border: 1px solid #d6d3d3;'> <tr style='background: #e6e6e6;'> <th style="border-right: 1px solid #bfbfbf;">序号</th> <th style="border-right: 1px solid #bfbfbf;">漏洞等级</th> <th style="border-right: 1px solid #bfbfbf;">漏洞类型</th> <th style="border-right: 1px solid #bfbfbf;">漏洞详情</th> </tr> """ index = 0 for vuln_info in vulns_info: index += 1 vuln_detail_url = '<a href="{}">{}</a>'.format( get_system_config()['front_end']['vuln_route'] + str(task_id), vuln_info.info) content += """ <tr> <td style="border-right: 1px solid #bfbfbf;">{}</td> <td style="border-right: 1px solid #bfbfbf;">{}</td> <td style="border-right: 1px solid #bfbfbf;">{}</td> <td style="border-right: 1px solid #bfbfbf;">{}</td> </tr> """.format(index, vuln_info.level, vuln_info.chinese_type, vuln_detail_url) content += """</table>""" return content, ",".join([user.email for user in users if user.email])
def list_tasks_by_num(): """ 获取系统中的任务列表,用于数据大盘展示用户使用最新动态,需要跨表连接获取数据 SELECT * FROM user INNER JOIN usertask ON usertask.user_id = user.id where usertask.task_id = 2333 :return: """ try: num = int(request.args.get("num")) tasks_cursor_wrapper = TaskService.get_fields_by_where( fields=(Task.created_time, Task.killed_time, Task.task_name, Task.id)) tasks_list = OrmModelJsonSerializer.serializer(tasks_cursor_wrapper) tasks_list.reverse() if len(tasks_list) > num: tasks_result = tasks_list[0:num] else: tasks_result = tasks_list result = list() for task_result in tasks_result: user = UserService.get_users(task_id=task_result["id"])[0] task_result["dept_name"] = user.dept_name task_result["full_name"] = user.full_name task_result["user_name"] = user.user_name result.append(task_result) response_data = jsonify(status=200, message="查询成功", data={ 'tasks': result, 'num': len(result) }) except Exception as e: logger.exception("list_tasks raise error") return jsonify(status=200, message="查询成功", data={ 'tasks': [], 'num': 0 }) return response_data