def web_scan_schedule(request): """ :param request: :return: """ username = request.user.username all_scans_db = project_db.objects.filter(username=username) all_scheduled_scans = task_schedule_db.objects.filter(username=username) if request.method == 'POST': scan_url = request.POST.get('url') scan_schedule_time = request.POST.get('datetime') project_id = request.POST.get('project_id') scanner = request.POST.get('scanner') # periodic_task = request.POST.get('periodic_task') periodic_task_value = request.POST.get('periodic_task_value') # periodic_task = 'Yes' if periodic_task_value == 'HOURLY': periodic_time = Task.HOURLY elif periodic_task_value == 'DAILY': periodic_time = Task.DAILY elif periodic_task_value == 'WEEKLY': periodic_time = Task.WEEKLY elif periodic_task_value == 'EVERY_2_WEEKS': periodic_time = Task.EVERY_2_WEEKS elif periodic_task_value == 'EVERY_4_WEEKS': periodic_time = Task.EVERY_4_WEEKS else: periodic_time = None dt_str = scan_schedule_time dt_obj = datetime.strptime(dt_str, '%d/%m/%Y %H:%M:%S %p') target__split = scan_url.split(',') split_length = target__split.__len__() for i in range(0, split_length): target = target__split.__getitem__(i) if scanner == 'zap_scan': if periodic_task_value == 'None': my_task = task(target, project_id, scanner, schedule=dt_obj, username=username) task_id = my_task.id print("Savedddddd taskid", task_id) else: my_task = task(target, project_id, scanner, repeat=periodic_time, repeat_until=None, username=username) task_id = my_task.id print("Savedddddd taskid", task_id) elif scanner == 'burp_scan': if periodic_task_value == 'None': my_task = task(target, project_id, scanner, schedule=dt_obj, username=username) task_id = my_task.id else: my_task = task(target, project_id, scanner, repeat=periodic_time, repeat_until=None) task_id = my_task.id print("Savedddddd taskid", task_id) save_scheadule = task_schedule_db( username=username, task_id=task_id, target=target, schedule_time=scan_schedule_time, project_id=project_id, scanner=scanner, periodic_task=periodic_task_value) save_scheadule.save() return render(request, 'web_scan_schedule.html', { 'all_scans_db': all_scans_db, 'all_scheduled_scans': all_scheduled_scans })
def post(self, request): all_scans_db = ProjectDb.objects.filter() all_scheduled_scans = task_schedule_db.objects.filter() scan_url = request.POST.get("url") scan_schedule_time = request.POST.get("datetime") project_id = request.POST.get("project_id") scanner = request.POST.get("scanner") # periodic_task = request.POST.get('periodic_task') periodic_task_value = request.POST.get("periodic_task_value") # periodic_task = 'Yes' if periodic_task_value == "HOURLY": periodic_time = Task.HOURLY elif periodic_task_value == "DAILY": periodic_time = Task.DAILY elif periodic_task_value == "WEEKLY": periodic_time = Task.WEEKLY elif periodic_task_value == "EVERY_2_WEEKS": periodic_time = Task.EVERY_2_WEEKS elif periodic_task_value == "EVERY_4_WEEKS": periodic_time = Task.EVERY_4_WEEKS else: periodic_time = None dt_str = scan_schedule_time dt_obj = datetime.strptime(dt_str, "%d/%m/%Y %H:%M:%S %p") target__split = scan_url.split(",") split_length = target__split.__len__() for i in range(0, split_length): target = target__split.__getitem__(i) if scanner == "zap_scan": if periodic_task_value == "None": my_task = task(target, project_id, scanner, schedule=dt_obj) task_id = my_task.id print("Savedddddd taskid", task_id) else: my_task = task( target, project_id, scanner, repeat=periodic_time, repeat_until=None, ) task_id = my_task.id print("Savedddddd taskid", task_id) elif scanner == "burp_scan": if periodic_task_value == "None": my_task = task(target, project_id, scanner, schedule=dt_obj) task_id = my_task.id else: my_task = task( target, project_id, scanner, repeat=periodic_time, repeat_until=None, ) task_id = my_task.id print("Savedddddd taskid", task_id) save_scheadule = task_schedule_db( task_id=task_id, target=target, schedule_time=scan_schedule_time, project_id=project_id, scanner=scanner, periodic_task=periodic_task_value, ) save_scheadule.save() return render( request, "webscanners/web_scan_schedule.html", { "all_scans_db": all_scans_db, "all_scheduled_scans": all_scheduled_scans }, )