예제 #1
0
def ajax_set_message_template_state_flags(request):
    # to be used by AJAX
    tpl_id = request.REQUEST.get("tpl_id", None)

    fields = ["is_ignored"]
    flags = {k: (request.REQUEST.get(k, None) in ("1", "true")) for k in fields if k in request.REQUEST}

    utilities.usage_assert(tpl_id)
    utilities.usage_assert(flags)
    request.datamanager.set_template_state_flags(tpl_id=tpl_id, **flags)

    return HttpResponse("OK")
예제 #2
0
def ajax_set_dispatched_message_state_flags(request):
    # to be used by AJAX
    msg_id = request.REQUEST.get("msg_id", None)

    fields = request.datamanager.EMAIL_BOOLEAN_FIELDS_FOR_USERS

    flags = {k: (request.REQUEST.get(k, None) in ("1", "true")) for k in fields if k in request.REQUEST}

    utilities.usage_assert(msg_id)
    utilities.usage_assert(flags)
    request.datamanager.set_dispatched_message_state_flags(msg_id=msg_id, **flags)

    return HttpResponse("OK")
예제 #3
0
def ajax_set_message_template_state_flags(request):
    # to be used by AJAX
    tpl_id = request.REQUEST.get("tpl_id", None)

    fields = ["is_ignored"]
    flags = {
        k: (request.REQUEST.get(k, None) in ("1", "true"))
        for k in fields if k in request.REQUEST
    }

    utilities.usage_assert(tpl_id)
    utilities.usage_assert(flags)
    request.datamanager.set_template_state_flags(tpl_id=tpl_id, **flags)

    return HttpResponse("OK")
예제 #4
0
def ajax_set_dispatched_message_state_flags(request):
    # to be used by AJAX
    msg_id = request.REQUEST.get("msg_id", None)

    fields = request.datamanager.EMAIL_BOOLEAN_FIELDS_FOR_USERS

    flags = {
        k: (request.REQUEST.get(k, None) in ("1", "true"))
        for k in fields if k in request.REQUEST
    }

    utilities.usage_assert(msg_id)
    utilities.usage_assert(flags)
    request.datamanager.set_dispatched_message_state_flags(msg_id=msg_id,
                                                           **flags)

    return HttpResponse("OK")
예제 #5
0
    def _check_data_sanity(self, strict=False):

        settings = self.settings

        all_artefact_items = list(self.get_non_gem_items().keys())
        all_locations = list(self.get_locations().keys())

        for (name, scan_set) in list(settings["scanning_sets"].items()):
            utilities.check_is_slug(name)
            utilities.check_no_duplicates(scan_set)
            utilities.usage_assert(scan_set, comment=name)  # NOT EMPTY
            for location in scan_set:
                assert location in all_locations, location

        # for now items can't be deleted, so we're OK
        utilities.assert_set_smaller_or_equal(
            list(settings["item_locations"].keys()),
            all_artefact_items)  # some items might have no scanning locations

        for (item_name,
             scan_set_details) in list(settings["item_locations"].items()):
            utilities.check_is_slug(
                item_name
            )  # in case it's NOT a valid item name, in unstrict mode...

            if strict:
                utilities.check_num_keys(
                    scan_set_details, 2)  # fields must be present even if None

            if scan_set_details["message"] is not None:
                utilities.check_is_string(scan_set_details["message"])
            if scan_set_details["scanning_set"] is not None:
                assert scan_set_details["scanning_set"] in list(
                    settings["scanning_sets"].keys())

            # at least SOME data must be available
            assert scan_set_details["message"] or scan_set_details[
                "scanning_set"], scan_set_details

        if strict:
            utilities.check_num_custom_settings(settings,
                                                4)  # with dedicated email

        assert not any(x for x in list(self.all_private_data.values())
                       if set(x.keys()) - set(["middlewares"]))