Exemplo n.º 1
0
    def test_tag_creator_form_empty(self):
        """test minimum form requirements / INVALID"""

        # get object
        form = TagCreatorForm(data={})
        # compare
        self.assertFalse(form.is_valid())
Exemplo n.º 2
0
    def test_tag_creator_system_form_filled(self):
        """ test minimum form requirements / INVALID """

        # get object
        system_1_id = System.objects.get(system_name='system_1').system_id
        system_2_id = System.objects.get(system_name='system_2').system_id
        # get object
        form = TagCreatorForm(data={
            'system': [system_1_id, system_2_id],
        })
        # compare
        self.assertFalse(form.is_valid())
Exemplo n.º 3
0
    def test_tag_creator_system_form_label(self):
        """test form label"""

        # get object
        form = TagCreatorForm()
        # compare
        self.assertEqual(form.fields['system'].label, 'Systems (*)')
Exemplo n.º 4
0
def tag_creator(request):
    """ function to create many tags for 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, 'Tag creator started')

        # call async function
        async_task(
            "dfirtrack_main.creator.tag_creator.tag_creator_async",
            request_post,
            request_user,
        )

        # return directly to tag list
        return redirect(reverse('tag_list'))

    # show empty form
    else:
        form = TagCreatorForm()

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

    return render(request, 'dfirtrack_main/tag/tag_creator.html',
                  {'form': form})
Exemplo n.º 5
0
def tags_creator(request):
    """ function to create many tags for 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.tags_creator.tags_creator_async",
            request_post,
            request_user,
        )

        return redirect('/tags')

    # show empty form
    else:
        form = TagCreatorForm()

        # call logger
        debug_logger(str(request.user), " TAG_CREATOR_ENTERED")
    return render(request, 'dfirtrack_main/tag/tags_creator.html',
                  {'form': form})
Exemplo n.º 6
0
def tags_creator_async(request_post, request_user):
    """ function to create many tags for many systems at once """

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

    # extract tags (list results from request object via multiple choice field)
    tags = request_post.getlist('tag')

    # extract systems (list results from request object via multiple choice field)
    systems = request_post.getlist('system')

    # iterate over tags
    for tag_id in tags:

        # iterate over systems
        for system_id in systems:

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

            # create relation
            if form.is_valid():

                # get objects
                system = System.objects.get(system_id=system_id)
                tag = Tag.objects.get(tag_id=tag_id)

                # add tag to system
                system.tag.add(tag)

                # call logger
                system.logger(str(request_user), " TAG_CREATOR_EXECUTED")

    # call logger
    debug_logger(str(request_user), " TAG_CREATOR_END")
Exemplo n.º 7
0
def tag_creator_async(request_post, request_user):
    """ function to create many tags for many systems at once """

    # call logger
    debug_logger(str(request_user), ' TAG_CREATOR_START')

    # extract tags (list results from request object via multiple choice field)
    tags = request_post.getlist('tag')

    # extract systems (list results from request object via multiple choice field)
    systems = request_post.getlist('system')

    # set tags_created_counter (needed for messages)
    tags_created_counter = 0

    # set system_tags_created_counter (needed for messages)
    system_tags_created_counter = 0

    # iterate over systems
    for system_id in systems:

        # autoincrement counter
        system_tags_created_counter  += 1

        # iterate over tags
        for tag_id in tags:

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

            # create relation
            if form.is_valid():

                """ object creation """

                # get objects
                system = System.objects.get(system_id=system_id)
                tag = Tag.objects.get(tag_id=tag_id)

                # add tag to system
                system.tag.add(tag)

                """ object counter / log """

                # autoincrement counter
                tags_created_counter  += 1

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

    """ finish tag importer """

    # call final message
    message_user(
        request_user,
        f'{tags_created_counter} tags created for {system_tags_created_counter} systems.',
        constants.SUCCESS
    )

    # call logger
    info_logger(
        str(request_user),
        f' TAG_CREATOR_STATUS'
        f' tags_created:{tags_created_counter}'
        f'|systems_affected:{system_tags_created_counter}'
    )

    # call logger
    debug_logger(str(request_user), ' TAG_CREATOR_END')