def get_target_details(email_address, analyst): """ Generate the data to render the Target details template. :param email_address: The email address of the target. :type email_address: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None if not email_address: template = "error.html" args = {'error': "Must provide an email address."} return template, args # check for exact match first target = Target.objects(email_address=email_address).first() if not target: # if no exact match, look for case-insensitive match target = Target.objects(email_address__iexact=email_address).first() if not target: target = Target() target.email_address = email_address.strip().lower() form = TargetInfoForm(initial={'email_address': email_address}) email_list = target.find_emails(analyst) form = TargetInfoForm(initial=target.to_dict()) if form.fields.get(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) != None: form.fields.pop(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) if form.fields.get(form_consts.Common.TICKET_VARIABLE_NAME) != None: form.fields.pop(form_consts.Common.TICKET_VARIABLE_NAME) subscription = { 'type': 'Target', 'id': target.id, 'subscribed': is_user_subscribed("%s" % analyst, 'Target', target.id) } #objects objects = target.sort_objects() #relationships relationships = target.sort_relationships("%s" % analyst, meta=True) # relationship relationship = {'type': 'Target', 'value': target.id} #comments if target.id: comments = { 'comments': target.get_comments(), 'url_key': email_address } else: comments = {'comments': [], 'url_key': email_address} #screenshots screenshots = target.get_screenshots(analyst) # favorites favorite = is_user_favorite("%s" % analyst, 'Target', target.id) # analysis results service_results = target.get_analysis_results() args = { 'objects': objects, 'relationships': relationships, 'relationship': relationship, 'comments': comments, 'favorite': favorite, 'subscription': subscription, 'screenshots': screenshots, 'email_list': email_list, 'target_detail': target, 'service_results': service_results, 'form': form } return template, args
def get_target_details(email_address, analyst): """ Generate the data to render the Target details template. :param email_address: The email address of the target. :type email_address: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None if not email_address: template = "error.html" args = {'error': "Must provide an email address."} return template, args # check for exact match first target = Target.objects(email_address=email_address).first() if not target: # if no exact match, look for case-insensitive match target = Target.objects(email_address__iexact=email_address).first() if not target: target = Target() target.email_address = email_address.strip().lower() form = TargetInfoForm(initial={'email_address': email_address}) email_list = target.find_emails(analyst) form = TargetInfoForm(initial=target.to_dict()) if form.fields.get(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) != None: form.fields.pop(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) if form.fields.get(form_consts.Common.TICKET_VARIABLE_NAME) != None: form.fields.pop(form_consts.Common.TICKET_VARIABLE_NAME) subscription = { 'type': 'Target', 'id': target.id, 'subscribed': is_user_subscribed("%s" % analyst, 'Target', target.id) } #objects objects = target.sort_objects() #relationships relationships = target.sort_relationships("%s" % analyst, meta=True) # relationship relationship = { 'type': 'Target', 'value': target.id } #comments if target.id: comments = {'comments': target.get_comments(), 'url_key': email_address} else: comments = {'comments': [], 'url_key': email_address} #screenshots screenshots = target.get_screenshots(analyst) # favorites favorite = is_user_favorite("%s" % analyst, 'Target', target.id) # analysis results service_results = target.get_analysis_results() args = {'objects': objects, 'relationships': relationships, 'relationship': relationship, 'comments': comments, 'favorite': favorite, 'subscription': subscription, 'screenshots': screenshots, 'email_list': email_list, 'target_detail': target, 'service_results': service_results, 'form': form} return template, args
def get_target_details(email_address, analyst): """ Generate the data to render the Target details template. :param email_address: The email address of the target. :type email_address: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None if not email_address: template = "error.html" args = {"error": "Must provide an email address."} return template, args target = Target.objects(email_address=email_address).first() if not target: target = Target() target.email_address = email_address form = TargetInfoForm(initial={"email_address": email_address}) email_list = target.find_emails(analyst) # initial_data = target.to_dict() # initial_data['bucket_list'] = target.get_bucket_list_string(); form = TargetInfoForm(initial=target.to_dict()) if form.fields.get(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) != None: form.fields.pop(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) if form.fields.get(form_consts.Common.TICKET_VARIABLE_NAME) != None: form.fields.pop(form_consts.Common.TICKET_VARIABLE_NAME) subscription = { "type": "Target", "id": target.id, "subscribed": is_user_subscribed("%s" % analyst, "Target", target.id), } # objects objects = target.sort_objects() # relationships relationships = target.sort_relationships("%s" % analyst, meta=True) # relationship relationship = {"type": "Target", "value": target.id} # comments if target.id: comments = {"comments": target.get_comments(), "url_key": email_address} else: comments = {"comments": [], "url_key": email_address} # screenshots screenshots = target.get_screenshots(analyst) # favorites favorite = is_user_favorite("%s" % analyst, "Target", target.id) args = { "objects": objects, "relationships": relationships, "relationship": relationship, "comments": comments, "favorite": favorite, "subscription": subscription, "screenshots": screenshots, "email_list": email_list, "target_detail": target, "form": form, } return template, args