예제 #1
0
def systems_add(request):
    if request.method == 'POST':
        form = SystemForm(request.POST)
        if form.is_valid():
            system = form.save(commit=False)
            system.system_created_by_user_id = request.user
            system.system_modified_by_user_id = request.user
            system.system_modify_time = timezone.now()
            system.save()
            form.save_m2m()

            # get user string
            request_user = str(request.user)
            # extract lines from ip list
            lines = request.POST.get('iplist').splitlines()
            # call function to save ips
            ips_save(request, system, lines)

            # call logger
            system.logger(str(request.user), ' SYSTEM_ADD_EXECUTED')
            messages.success(request, 'System added')
            return redirect('/systems/' + str(system.system_id))
    else:
        # show empty form with default values for convenience and speed reasons
        form = SystemForm(initial={
            'systemstatus': 2,
            'analysisstatus': 1,
        })
        # call logger
        debug_logger(str(request.user), " SYSTEM_ADD_ENTERED")
    return render(request, 'dfirtrack_main/system/systems_add.html',
                  {'form': form})
예제 #2
0
def systems_edit(request, pk):
    system = get_object_or_404(System, pk=pk)
    if request.method == 'POST':
        form = SystemForm(request.POST, instance=system)
        if form.is_valid():
            system = form.save(commit=False)
            system.system_modified_by_user_id = request.user
            system.system_modify_time = timezone.now()
            system.save()
            form.save_m2m()

            system.ip.clear()
            # get user string
            request_user = str(request.user)
            # extract lines from ip list
            lines = request.POST.get('iplist').splitlines()
            # call function to save ips
            ips_save(request, system, lines)

            # call logger
            system.logger(str(request.user), ' SYSTEM_EDIT_EXECUTED')
            messages.success(request, 'System edited')
            return redirect('/systems/' + str(system.system_id))
    else:
        system = System.objects.get(system_id=pk)
        """ get all existing ip addresses """

        # get objects
        ips = system.ip.all()
        # count objects
        iplen = len(ips)
        # set counter
        i = 0
        # set default string if there is no object at all
        ipstring = ''
        for ip in ips:
            # add ip to string
            ipstring = ipstring + str(ip.ip_ip)
            # increment counter
            i += 1
            # add newline but not for last occurence
            if i < iplen:
                ipstring = ipstring + '\n'

        # show form for system with all ip addresses
        form = SystemForm(
            instance=system,
            initial={
                'iplist': ipstring,
            },
        )
        # call logger
        system.logger(str(request.user), " SYSTEM_EDIT_ENTERED")
    return render(request, 'dfirtrack_main/system/systems_edit.html',
                  {'form': form})