def upload_attach(request, email_id): """ Upload an attachment for an email. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :param email_id: The ObjectId of the email to upload attachment for. :type email_id: str :returns: :class:`django.http.HttpResponse` """ if request.method == 'POST': form = UploadFileForm(request.user, request.POST, request.FILES) if form.is_valid(): cleaned_data = form.cleaned_data analyst = request.user.username users_sources = user_sources(analyst) method = cleaned_data['method'] or "Add to Email" bucket_list = cleaned_data.get(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) ticket = cleaned_data.get(form_consts.Common.TICKET_VARIABLE_NAME) email_addr = None if request.POST.get('email'): email_addr = request.user.email email = Email.objects(id=email_id, source__name__in=users_sources).first() if not email: return render_to_response('file_upload_response.html', {'response': json.dumps({'success': False, 'message': "Could not find email."})}, RequestContext(request)) result = create_email_attachment(email, cleaned_data, analyst, cleaned_data['source'], method, cleaned_data['reference'], cleaned_data['campaign'], cleaned_data['confidence'], bucket_list, ticket, request.FILES.get('filedata',None), request.POST.get('filename', None), request.POST.get('md5', None), email_addr, cleaned_data['inherit_sources']) # If successful, tell the browser to redirect back to this email. if result['success']: result['redirect_url'] = reverse('crits.emails.views.email_detail', args=[email_id]) return render_to_response('file_upload_response.html', {'response': json.dumps(result)}, RequestContext(request)) else: form.fields['related_md5'].widget = forms.HiddenInput() #hide field so it doesn't reappear return render_to_response('file_upload_response.html', {'response': json.dumps({'success': False, 'form': form.as_table()})}, RequestContext(request)) else: return HttpResponseRedirect(reverse('crits.emails.views.email_detail', args=[email_id]))
def upload_attach(request, email_id): """ Upload an attachment for an email. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :param email_id: The ObjectId of the email to upload attachment for. :type email_id: str :returns: :class:`django.http.HttpResponse` """ analyst = request.user.username sources = user_sources(analyst) email = Email.objects(id=email_id, source__name__in=sources).first() if not email: error = "Could not find email." return render_to_response("error.html", {"error": error}, RequestContext(request)) if request.method == 'POST': form = EmailAttachForm(request.user.username, request.POST, request.FILES) if form.is_valid(): cleaned_data = form.cleaned_data reference = cleaned_data['source_reference'] campaign = cleaned_data['campaign'] confidence = cleaned_data['confidence'] source = cleaned_data['source'] bucket_list = cleaned_data.get(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) ticket = cleaned_data.get(form_consts.Common.TICKET_VARIABLE_NAME) if request.FILES or 'filename' in request.POST and 'md5' in request.POST: result = create_email_attachment(email, cleaned_data, reference, source, analyst, campaign=campaign, confidence=confidence, bucket_list=bucket_list, ticket=ticket, files=request.FILES.get('filedata',None), filename=request.POST.get('filename', None), md5=request.POST.get('md5', None)) if not result['success']: return render_to_response("error.html", {"error": result['message'] }, RequestContext(request)) return HttpResponseRedirect(reverse('crits.emails.views.email_detail', args=[email_id])) else: return render_to_response("error.html", {"error": '%s' % form.errors }, RequestContext(request)) else: return HttpResponseRedirect(reverse('crits.emails.views.email_detail', args=[email_id]))
def upload_attach(request, email_id): """ Upload an attachment for an email. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :param email_id: The ObjectId of the email to upload attachment for. :type email_id: str :returns: :class:`django.http.HttpResponse` """ analyst = request.user.username sources = user_sources(analyst) email = Email.objects(id=email_id, source__name__in=sources).first() if not email: error = "Could not find email." return render_to_response("error.html", {"error": error}, RequestContext(request)) if request.method == 'POST': form = EmailAttachForm(request.user.username, request.POST, request.FILES) if form.is_valid(): cleaned_data = form.cleaned_data reference = cleaned_data['source_reference'] campaign = cleaned_data['campaign'] confidence = cleaned_data['confidence'] source = cleaned_data['source'] bucket_list = cleaned_data.get( form_consts.Common.BUCKET_LIST_VARIABLE_NAME) ticket = cleaned_data.get(form_consts.Common.TICKET_VARIABLE_NAME) if request.FILES or 'filename' in request.POST and 'md5' in request.POST: result = create_email_attachment( email, cleaned_data, reference, source, analyst, campaign=campaign, confidence=confidence, bucket_list=bucket_list, ticket=ticket, files=request.FILES.get('filedata', None), filename=request.POST.get('filename', None), md5=request.POST.get('md5', None)) if not result['success']: return render_to_response("error.html", {"error": result['message']}, RequestContext(request)) return HttpResponseRedirect( reverse('crits.emails.views.email_detail', args=[email_id])) else: return render_to_response("error.html", {"error": '%s' % form.errors}, RequestContext(request)) else: return HttpResponseRedirect( reverse('crits.emails.views.email_detail', args=[email_id]))
def upload_attach(request, email_id): """ Upload an attachment for an email. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :param email_id: The ObjectId of the email to upload attachment for. :type email_id: str :returns: :class:`django.http.HttpResponse` """ redirect = reverse('crits-emails-views-email_detail', args=[email_id]) user = request.user if request.method != 'POST': return HttpResponseRedirect(redirect) file_form = UploadFileForm(request.user, request.POST, request.FILES) json_reply = {'success': False} if not file_form.is_valid(): file_form.fields['related_md5_event'].widget = forms.HiddenInput() #hide field so it doesn't reappear json_reply['form'] = file_form.as_table() return render(request, 'file_upload_response.html', {'response': json.dumps(json_reply)}) if not user.has_access_to(EmailACL.ADD_ATTACHMENT): json_reply['message'] = "User does not have permission to upload attachment." return render(request, 'file_upload_response.html', {'response': json.dumps(json_reply)}) analyst = request.user.username users_sources = user_sources(analyst) method = file_form.cleaned_data['method'] or "Add to Email" bucket_list = file_form.cleaned_data.get(form_consts.Common.BUCKET_LIST_VARIABLE_NAME) ticket = file_form.cleaned_data.get(form_consts.Common.TICKET_VARIABLE_NAME) email_addr = None if request.POST.get('email'): email_addr = request.user.email email = Email.objects(id=email_id, source__name__in=users_sources).first() if not email: json_reply['message'] = "Could not find email." return render(request, 'file_upload_response.html', {'response': json.dumps(json_reply)}) result = create_email_attachment(email, file_form, analyst, file_form.cleaned_data['source'], method, file_form.cleaned_data['reference'], file_form.cleaned_data['campaign'], file_form.cleaned_data['confidence'], bucket_list, ticket, request.FILES.get('filedata'), request.POST.get('filename'), request.POST.get('md5'), email_addr, file_form.cleaned_data['inherit_sources']) # If successful, tell the browser to redirect back to this email. if result['success']: result['redirect_url'] = redirect return render(request, 'file_upload_response.html', {'response': json.dumps(result)})