示例#1
0
    def test_system_creator_form_empty(self):
        """ test minimum form requirements / INVALID """

        # get object
        form = SystemCreatorForm(data={})
        # compare
        self.assertFalse(form.is_valid())
示例#2
0
    def test_system_creator_systemlist_form_filled(self):
        """ test minimum form requirements / INVALID """

        # get object
        form = SystemCreatorForm(data={
            'systemlist': 'system_1',
        })
        # compare
        self.assertFalse(form.is_valid())
示例#3
0
    def test_system_creator_systemstatus_form_filled(self):
        """ test minimum form requirements / VALID """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        form = SystemCreatorForm(data={
            'systemlist': 'system_1',
            'systemstatus': systemstatus_id,
        })
        # compare
        self.assertTrue(form.is_valid())
示例#4
0
    def test_system_creator_systemlist_multi_line(self):
        """ test for multiple line input """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1\nsystem_2\nsystem_3',
                'systemstatus': systemstatus_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#5
0
    def test_system_creator_analysisstatus_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['analysisstatus'].label, 'Analysisstatus')
示例#6
0
def system_creator(request):
    """ function to create many systems at once (helper function to call the real function) """

    # form was valid to post
    if request.method == "POST":

        # get objects from request object
        request_post = request.POST
        request_user = request.user

        # show immediate message for user
        messages.success(request, 'System creator started')

        # call async function
        async_task(
            "dfirtrack_main.creator.system_creator.system_creator_async",
            request_post,
            request_user,
        )

        # return directly to system list
        return redirect(reverse('system_list'))

    # show empty form
    else:
        form = SystemCreatorForm(initial={
            'systemstatus': 2,
            'analysisstatus': 1,
        })

        # call logger
        debug_logger(str(request.user), ' SYSTEM_CREATOR_ENTERED')

    return render(request, 'dfirtrack_main/system/system_creator.html',
                  {'form': form})
示例#7
0
    def test_system_creator_location_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['location'].label, 'Location')
示例#8
0
    def test_system_creator_osarch_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['osarch'].label, 'Osarch')
示例#9
0
    def test_system_creator_systemlist_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['systemlist'].label, 'System list (*)')
示例#10
0
def system_creator(request):
    """ function to create many systems at once (helper function to call the real function) """

    # form was valid to post
    if request.method == "POST":
        request_post = request.POST
        request_user = request.user

        # call async function
        async_task(
            "dfirtrack_main.creator.system_creator.system_creator_async",
            request_post,
            request_user,
        )

        return redirect(reverse('system_list'))

    # show empty form
    else:
        form = SystemCreatorForm(initial={
            'systemstatus': 2,
            'analysisstatus': 1,
        })

    # call logger
    debug_logger(str(request.user), " SYSTEM_CREATOR_ENTERED")
    return render(request, 'dfirtrack_main/system/system_creator.html', {'form': form})
示例#11
0
    def test_system_creator_dnsname_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['dnsname'].label, 'Dnsname')
示例#12
0
    def test_system_creator_tag_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['tag'].label, 'Tags')
示例#13
0
    def test_system_creator_case_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['case'].label, 'Cases')
示例#14
0
    def test_system_creator_contact_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        contact_id = Contact.objects.get(contact_name='contact_1').contact_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'contact': contact_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#15
0
    def test_system_creator_osarch_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        osarch_id = Osarch.objects.get(osarch_name='osarch_1').osarch_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'osarch': osarch_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#16
0
    def test_system_creator_dnsname_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        dnsname_id = Dnsname.objects.get(dnsname_name='dnsname_1').dnsname_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'dnsname': dnsname_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#17
0
    def test_system_creator_reason_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        reason_id = Reason.objects.get(reason_name='reason_1').reason_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'reason': reason_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#18
0
    def test_system_creator_os_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['os'].label, 'Operating system')
        self.assertEqual(form.fields['os'].empty_label, 'Select OS (optional)')
示例#19
0
    def test_system_creator_serviceprovider_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['serviceprovider'].label,
                         'Serviceprovider')
示例#20
0
    def test_system_creator_tag_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        tag_1_id = Tag.objects.get(tag_name='tag_1').tag_id
        tag_2_id = Tag.objects.get(tag_name='tag_2').tag_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'tag': [tag_1_id, tag_2_id],
            })
        # compare
        self.assertTrue(form.is_valid())
示例#21
0
    def test_system_creator_serviceprovider_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        serviceprovider_id = Serviceprovider.objects.get(
            serviceprovider_name='serviceprovider_1').serviceprovider_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'serviceprovider': serviceprovider_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#22
0
    def test_system_creator_domain_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['domain'].label, 'Domain')
        self.assertEqual(form.fields['domain'].empty_label,
                         'Select domain (optional)')
示例#23
0
    def test_system_creator_contact_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['contact'].label, 'Contact')
        self.assertEqual(form.fields['contact'].empty_label,
                         'Select contact (optional)')
示例#24
0
    def test_system_creator_osarch_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['osarch'].label, 'OS architecture')
        self.assertEqual(form.fields['osarch'].empty_label,
                         'Select OS architecture (optional)')
示例#25
0
    def test_system_case_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        case_1_id = Case.objects.get(case_name='case_1').case_id
        case_2_id = Case.objects.get(case_name='case_2').case_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'case': [case_1_id, case_2_id],
            })
        # compare
        self.assertTrue(form.is_valid())
示例#26
0
    def test_system_creator_analysisstatus_form_filled(self):
        """ test additional form content """

        # get object
        systemstatus_id = Systemstatus.objects.get(
            systemstatus_name='systemstatus_1').systemstatus_id
        # get object
        analysisstatus_id = Analysisstatus.objects.get(
            analysisstatus_name='analysisstatus_1').analysisstatus_id
        # get object
        form = SystemCreatorForm(
            data={
                'systemlist': 'system_1',
                'systemstatus': systemstatus_id,
                'analysisstatus': analysisstatus_id,
            })
        # compare
        self.assertTrue(form.is_valid())
示例#27
0
    def test_system_creator_dnsname_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['dnsname'].label, 'DNS name')
        self.assertEqual(form.fields['dnsname'].empty_label,
                         'Select DNS name (optional)')
示例#28
0
    def test_system_creator_reason_form_label(self):
        """ test form label """

        # get object
        form = SystemCreatorForm()
        # compare
        self.assertEqual(form.fields['reason'].label,
                         'Reason for investigation')
        self.assertEqual(form.fields['reason'].empty_label,
                         'Select reason (optional)')
示例#29
0
def system_creator(request):
    """function to create many systems at once (helper function to call the real function)"""

    # form was valid to post
    if request.method == "POST":

        # get objects from request object
        request_post = request.POST
        request_user = request.user

        # show immediate message for user
        messages.success(request, 'System creator started')

        # call async function
        async_task(
            "dfirtrack_main.creator.system_creator.system_creator_async",
            request_post,
            request_user,
        )

        # return directly to system list
        return redirect(reverse('system_list'))

    # show empty form
    else:

        # get id of first status objects sorted by name
        systemstatus = Systemstatus.objects.order_by(
            'systemstatus_name')[0].systemstatus_id
        analysisstatus = Analysisstatus.objects.order_by(
            'analysisstatus_name')[0].analysisstatus_id

        # get all workflows
        workflows = Workflow.objects.all()

        # show empty form with default values for convenience and speed reasons
        form = SystemCreatorForm(initial={
            'systemstatus': systemstatus,
            'analysisstatus': analysisstatus,
        })

        # call logger
        debug_logger(str(request.user), ' SYSTEM_CREATOR_ENTERED')

    return render(
        request,
        'dfirtrack_main/system/system_creator.html',
        {
            'form': form,
            'workflows': workflows
        },
    )
示例#30
0
def system_creator_async(request_post, request_user):
    """ function to create many systems at once """

    # call logger
    debug_logger(str(request_user), " SYSTEM_CREATOR_BEGIN")

    # exctract lines from systemlist (list results from request object via large text area)
    lines = request_post.get('systemlist').splitlines()

    # iterate over lines
    for line in lines:

        # skip emtpy lines
        if line == '':
            warning_logger(str(request_user), " SYSTEM_CREATOR_ROW_EMPTY")
            continue

        # check line for length of string
        if len(line) > 50:
            warning_logger(str(request_user), " SYSTEM_CREATOR_LONG_STRING")
            continue

        # check for existence of system
        system = System.objects.filter(system_name = line)
        if system.count() > 0:
            # call logger
            error_logger(str(request_user), " SYSTEM_CREATOR_SYSTEM_EXISTS " + "system_name:" + line)
            # leave this loop because system with this systemname already exists
            continue

        # create form with request data
        form = SystemCreatorForm(request_post)

        # create system
        if form.is_valid():

            # don't save form yet
            system = form.save(commit=False)

            # set system_name
            system.system_name = line

            # set auto values
            system.system_created_by_user_id = request_user
            system.system_modified_by_user_id = request_user
            system.system_modify_time = timezone.now()

            # save object
            system.save()

            # save manytomany
            form.save_m2m()

            # call logger
            system.logger(str(request_user), ' SYSTEM_CREATOR_EXECUTED')

    # call logger
    debug_logger(str(request_user), " SYSTEM_CREATOR_END")