def get_email_address_details(address, analyst): """ Generate the data to render the Email Address details template. :param address: The name of the Address to get details for. :type address: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None allowed_sources = user_sources(analyst) address_object = EmailAddress.objects(address=address, source__name__in=allowed_sources).first() if not address_object: error = ("Either no data exists for this email address" " or you do not have permission to view it.") template = "error.html" args = {'error': error} return template, args address_object.sanitize_sources(username="******" % analyst, sources=allowed_sources) # remove pending notifications for user remove_user_from_notification("%s" % analyst, address_object.id, 'EmailAddress') # subscription subscription = { 'type': 'EmailAddress', 'id': address_object.id, 'subscribed': is_user_subscribed("%s" % analyst, 'EmailAddress', address_object.id), } #objects objects = address_object.sort_objects() #relationships relationships = address_object.sort_relationships("%s" % analyst, meta=True) # relationship relationship = { 'type': 'EmailAddress', 'value': address_object.id } #comments comments = {'comments': address_object.get_comments(), 'url_key':address_object.address} # favorites favorite = is_user_favorite("%s" % analyst, 'EmailAddress', address_object.id) # services service_list = get_supported_services('EmailAddress') # analysis results service_results = address_object.get_analysis_results() args = {'email_address': address_object, 'objects': objects, 'relationships': relationships, 'comments': comments, 'favorite': favorite, 'relationship': relationship, 'subscription': subscription, 'address': address_object.address, 'service_list': service_list, 'service_results': service_results} return template, args
def get_email_address_details(address, analyst): """ Generate the data to render the Email Address details template. :param address: The name of the Address to get details for. :type address: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None allowed_sources = user_sources(analyst) address_object = EmailAddress.objects( address=address, source__name__in=allowed_sources).first() if not address_object: error = ("Either no data exists for this email address" " or you do not have permission to view it.") template = "error.html" args = {'error': error} return template, args address_object.sanitize_sources(username="******" % analyst, sources=allowed_sources) # remove pending notifications for user remove_user_from_notification("%s" % analyst, address_object.id, 'EmailAddress') # subscription subscription = { 'type': 'EmailAddress', 'id': address_object.id, 'subscribed': is_user_subscribed("%s" % analyst, 'EmailAddress', address_object.id), } #objects objects = address_object.sort_objects() #relationships relationships = address_object.sort_relationships("%s" % analyst, meta=True) # relationship relationship = {'type': 'EmailAddress', 'value': address_object.id} #comments comments = { 'comments': address_object.get_comments(), 'url_key': address_object.address } # favorites favorite = is_user_favorite("%s" % analyst, 'EmailAddress', address_object.id) # services service_list = get_supported_services('EmailAddress') # analysis results service_results = address_object.get_analysis_results() args = { 'email_address': address_object, 'objects': objects, 'relationships': relationships, 'comments': comments, 'favorite': favorite, 'relationship': relationship, 'subscription': subscription, 'address': address_object.address, 'service_list': service_list, 'service_results': service_results } return template, args
def get_event_details(event_id, analyst): """ Generate the data to render the Event details template. :param event_id: The ObjectId of the Event to get details for. :type event_id: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None sources = user_sources(analyst) event = Event.objects(id=event_id, source__name__in=sources).first() if not event: template = "error.html" args = {'error': "ID does not exist or insufficient privs for source"} return template, args event.sanitize("%s" % analyst) download_form = DownloadFileForm(initial={ "obj_type": 'Event', "obj_id": event_id }) # remove pending notifications for user remove_user_from_notification("%s" % analyst, event.id, 'Event') # subscription subscription = { 'type': 'Event', 'id': event.id, 'subscribed': is_user_subscribed("%s" % analyst, 'Event', event.id), } #objects objects = event.sort_objects() #relationships relationships = event.sort_relationships("%s" % analyst, meta=True) # Get count of related Events for each related Sample for smp in relationships.get('Sample', []): count = Event.objects(relationships__object_id=smp['id'], source__name__in=sources).count() smp['rel_smp_events'] = count # relationship relationship = {'type': 'Event', 'value': event.id} #comments comments = {'comments': event.get_comments(), 'url_key': event.id} # favorites favorite = is_user_favorite("%s" % analyst, 'Event', event.id) # services service_list = get_supported_services('Event') # analysis results service_results = event.get_analysis_results() args = { 'service_list': service_list, 'objects': objects, 'relationships': relationships, 'comments': comments, 'favorite': favorite, 'relationship': relationship, 'subscription': subscription, 'event': event, 'service_results': service_results, 'download_form': download_form } return template, args
def get_event_details(event_id, analyst): """ Generate the data to render the Event details template. :param event_id: The ObjectId of the Event to get details for. :type event_id: str :param analyst: The user requesting this information. :type analyst: str :returns: template (str), arguments (dict) """ template = None sources = user_sources(analyst) event = Event.objects(id=event_id, source__name__in=sources).first() if not event: template = "error.html" args = {'error': "ID does not exist or insufficient privs for source"} return template, args event.sanitize("%s" % analyst) download_form = DownloadFileForm(initial={"obj_type": 'Event', "obj_id": event_id}) # remove pending notifications for user remove_user_from_notification("%s" % analyst, event.id, 'Event') # subscription subscription = { 'type': 'Event', 'id': event.id, 'subscribed': is_user_subscribed("%s" % analyst, 'Event', event.id), } #objects objects = event.sort_objects() #relationships relationships = event.sort_relationships("%s" % analyst, meta=True) # Get count of related Events for each related Sample for smp in relationships.get('Sample', []): count = Event.objects(relationships__object_id=smp['id'], source__name__in=sources).count() smp['rel_smp_events'] = count # relationship relationship = { 'type': 'Event', 'value': event.id } #comments comments = {'comments': event.get_comments(), 'url_key': event.id} # favorites favorite = is_user_favorite("%s" % analyst, 'Event', event.id) # services service_list = get_supported_services('Event') # analysis results service_results = event.get_analysis_results() args = {'service_list': service_list, 'objects': objects, 'relationships': relationships, 'comments': comments, 'favorite': favorite, 'relationship': relationship, 'subscription': subscription, 'event': event, 'service_results': service_results, 'download_form': download_form} return template, args