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")
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")
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")
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")
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"]))