def add_new_object(request): """ Add a new object. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == 'POST': analyst = "%s" % request.user user = request.user result = "" message = "" my_type = request.POST['otype'] acl = get_acl_object(my_type) if user.has_access_to(acl.OBJECTS_ADD): form = AddObjectForm(user, request.POST, request.FILES) if not form.is_valid() and 'value' not in request.FILES: message = "Invalid Form: %s" % form.errors form = form.as_table() response = json.dumps({'message': message, 'form': form, 'success': False}) if request.is_ajax(): return HttpResponse(response, content_type="application/json") else: return render_to_response("file_upload_response.html", {'response':response}, RequestContext(request)) source = request.POST['source_name'] oid = request.POST['oid'] object_type = request.POST['object_type'] method = request.POST['source_method'] reference = request.POST['source_reference'] tlp = request.POST['source_tlp'] add_indicator = request.POST.get('add_indicator', None) data = None # if it was a file upload, handle the file appropriately if 'value' in request.FILES: data = request.FILES['value'] value = request.POST.get('value', None) if isinstance(value, basestring): value = value.strip() results = add_object(my_type, oid, object_type, source, method, reference, tlp, user.username, value=value, file_=data, add_indicator=add_indicator, is_sort_relationships=True) else: results = {'success':False, 'message':'User does not have permission to add object'} if results['success']: subscription = { 'type': my_type, 'id': oid } if results.get('relationships', None): relationship = {'type': my_type, 'value': oid} relationships = results['relationships'] html = render_to_string('objects_listing_widget.html', {'objects': results['objects'], 'relationships': relationships, 'subscription': subscription}, RequestContext(request)) result = {'success': True, 'html': html, 'message': results['message']} rel_msg = render_to_string('relationships_listing_widget.html', {'relationship': relationship, 'nohide': True, 'relationships': relationships}, RequestContext(request)) result['rel_made'] = True result['rel_msg'] = rel_msg else: html = render_to_string('objects_listing_widget.html', {'objects': results['objects'], 'subscription': subscription}, RequestContext(request)) result = {'success': True, 'html': html, 'message': results['message']} else: message = "Error adding object: %s" % results['message'] result = {'success': False, 'message': message} if request.is_ajax(): return HttpResponse(json.dumps(result), content_type="application/json") else: return render_to_response("file_upload_response.html", {'response': json.dumps(result)}, RequestContext(request)) else: error = "Expected POST" return render_to_response("error.html", {"error" : error }, RequestContext(request))
def add_new_object(request): """ Add a new object. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == 'POST': analyst = "%s" % request.user user = request.user result = "" message = "" my_type = request.POST['otype'] acl = get_acl_object(my_type) if user.has_access_to(acl.OBJECTS_ADD): form = AddObjectForm(user, request.POST, request.FILES) if not form.is_valid() and 'value' not in request.FILES: message = "Invalid Form: %s" % form.errors form = form.as_table() response = json.dumps({ 'message': message, 'form': form, 'success': False }) if request.is_ajax(): return HttpResponse(response, content_type="application/json") else: return render_to_response("file_upload_response.html", {'response': response}, RequestContext(request)) source = request.POST['source_name'] oid = request.POST['oid'] object_type = request.POST['object_type'] method = request.POST['source_method'] reference = request.POST['source_reference'] tlp = request.POST['source_tlp'] add_indicator = request.POST.get('add_indicator', None) data = None # if it was a file upload, handle the file appropriately if 'value' in request.FILES: data = request.FILES['value'] value = request.POST.get('value', None) if isinstance(value, basestring): value = value.strip() results = add_object(my_type, oid, object_type, source, method, reference, tlp, user.username, value=value, file_=data, add_indicator=add_indicator, is_sort_relationships=True) else: results = { 'success': False, 'message': 'User does not have permission to add object' } if results['success']: subscription = {'type': my_type, 'id': oid} if results.get('relationships', None): relationship = {'type': my_type, 'value': oid} relationships = results['relationships'] html = render_to_string( 'objects_listing_widget.html', { 'objects': results['objects'], 'relationships': relationships, 'subscription': subscription }, RequestContext(request)) result = { 'success': True, 'html': html, 'message': results['message'] } rel_msg = render_to_string( 'relationships_listing_widget.html', { 'relationship': relationship, 'nohide': True, 'relationships': relationships }, RequestContext(request)) result['rel_made'] = True result['rel_msg'] = rel_msg else: html = render_to_string('objects_listing_widget.html', { 'objects': results['objects'], 'subscription': subscription }, RequestContext(request)) result = { 'success': True, 'html': html, 'message': results['message'] } else: message = "Error adding object: %s" % results['message'] result = {'success': False, 'message': message} if request.is_ajax(): return HttpResponse(json.dumps(result), content_type="application/json") else: return render_to_response("file_upload_response.html", {'response': json.dumps(result)}, RequestContext(request)) else: error = "Expected POST" return render_to_response("error.html", {"error": error}, RequestContext(request))
def add_new_object(request): """ Add a new object. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == "POST": analyst = "%s" % request.user result = "" message = "" my_type = request.POST["otype"] all_obj_type_choices = [ (c[0], c[0], {"datatype": c[1].keys()[0], "datatype_value": c[1].values()[0]}) for c in get_object_types(False) ] form = AddObjectForm(analyst, all_obj_type_choices, request.POST, request.FILES) if not form.is_valid() and not "value" in request.FILES: message = "Invalid Form: %s" % form.errors form = form.as_table() response = json.dumps({"message": message, "form": form, "success": False}) if request.is_ajax(): return HttpResponse(response, mimetype="application/json") else: return render_to_response("file_upload_response.html", {"response": response}, RequestContext(request)) source = request.POST["source"] oid = request.POST["oid"] ot_array = request.POST["object_type"].split(" - ") object_type = ot_array[0] name = ot_array[1] if len(ot_array) == 2 else ot_array[0] method = request.POST["method"] reference = request.POST["reference"] add_indicator = request.POST.get("add_indicator", None) data = None # if it was a file upload, handle the file appropriately if "value" in request.FILES: data = request.FILES["value"] value = request.POST.get("value", None) if isinstance(value, basestring): value = value.strip() results = add_object( my_type, oid, object_type, name, source, method, reference, analyst, value=value, file_=data, add_indicator=add_indicator, is_sort_relationships=True, ) if results["success"]: subscription = {"type": my_type, "id": oid} if results.get("relationships", None): relationship = {"type": my_type, "value": oid} relationships = results["relationships"] html = render_to_string( "objects_listing_widget.html", {"objects": results["objects"], "relationships": relationships, "subscription": subscription}, RequestContext(request), ) result = {"success": True, "html": html, "message": results["message"]} rel_msg = render_to_string( "relationships_listing_widget.html", {"relationship": relationship, "nohide": True, "relationships": relationships}, RequestContext(request), ) result["rel_made"] = True result["rel_msg"] = rel_msg else: html = render_to_string( "objects_listing_widget.html", {"objects": results["objects"], "subscription": subscription}, RequestContext(request), ) result = {"success": True, "html": html, "message": results["message"]} else: message = "Error adding object: %s" % results["message"] result = {"success": False, "message": message} if request.is_ajax(): return HttpResponse(json.dumps(result), mimetype="application/json") else: return render_to_response( "file_upload_response.html", {"response": json.dumps(result)}, RequestContext(request) ) else: error = "Expected POST" return render_to_response("error.html", {"error": error}, RequestContext(request))
def add_new_object(request): """ Add a new object. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == 'POST': analyst = "%s" % request.user result = "" message = "" my_type = request.POST['otype'] all_obj_type_choices = [(c[0], c[0], {'datatype':c[1].keys()[0], 'datatype_value':c[1].values()[0]} ) for c in get_object_types(False)] form = AddObjectForm(analyst, all_obj_type_choices, request.POST, request.FILES) if not form.is_valid() and not 'value' in request.FILES: message = "Invalid Form: %s" % form.errors form = form.as_table() response = json.dumps({'message': message, 'form': form, 'success': False}) if request.is_ajax(): return HttpResponse(response, mimetype="application/json") else: return render_to_response("file_upload_response.html", {'response':response}, RequestContext(request)) source = request.POST['source'] oid = request.POST['oid'] ot_array = request.POST['object_type'].split(" - ") object_type = ot_array[0] name = ot_array[1] if len(ot_array) == 2 else ot_array[0] method = request.POST['method'] reference = request.POST['reference'] add_indicator = request.POST.get('add_indicator', None) data = None # if it was a file upload, handle the file appropriately if 'value' in request.FILES: data = request.FILES['value'] value = request.POST.get('value', None) if isinstance(value, basestring): value = value.strip() results = add_object(my_type, oid, object_type, name, source, method, reference, analyst, value=value, file_=data, add_indicator=add_indicator, is_sort_relationships=True) if results['success']: subscription = { 'type': my_type, 'id': oid } if results.get('relationships', None): relationship = {'type': my_type, 'value': oid} relationships = results['relationships'] html = render_to_string('objects_listing_widget.html', {'objects': results['objects'], 'relationships': relationships, 'subscription': subscription}, RequestContext(request)) result = {'success': True, 'html': html, 'message': results['message']} rel_msg = render_to_string('relationships_listing_widget.html', {'relationship': relationship, 'nohide': True, 'relationships': relationships}, RequestContext(request)) result['rel_made'] = True result['rel_msg'] = rel_msg else: html = render_to_string('objects_listing_widget.html', {'objects': results['objects'], 'subscription': subscription}, RequestContext(request)) result = {'success': True, 'html': html, 'message': results['message']} else: message = "Error adding object: %s" % results['message'] result = {'success': False, 'message': message} if request.is_ajax(): return HttpResponse(json.dumps(result), mimetype="application/json") else: return render_to_response("file_upload_response.html", {'response': json.dumps(result)}, RequestContext(request)) else: error = "Expected POST" return render_to_response("error.html", {"error" : error }, RequestContext(request))
def add_new_object(request): """ Add a new object. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == 'POST': analyst = "%s" % request.user result = "" message = "" my_type = request.POST['otype'] all_obj_type_choices = [(c[0], c[0], {'datatype':c[1].keys()[0], 'datatype_value':c[1].values()[0]} ) for c in get_object_types(False)] form = AddObjectForm(analyst, all_obj_type_choices, request.POST, request.FILES) if not form.is_valid() and not 'value' in request.FILES: message = "Invalid Form: %s" % form.errors form = form.as_table() response = json.dumps({'message': message, 'form': form, 'success': False}) if request.is_ajax(): return HttpResponse(response, mimetype="application/json") else: return render_to_response("file_upload_response.html", {'response':response}, RequestContext(request)) source = request.POST['source'] oid = request.POST['oid'] ot_array = request.POST['object_type'].split(" - ") object_type = ot_array[0] name = ot_array[1] if len(ot_array) == 2 else ot_array[0] method = request.POST['method'] reference = request.POST['reference'] add_indicator = request.POST.get('add_indicator', None) data = None # if it was a file upload, handle the file appropriately if 'value' in request.FILES: data = request.FILES['value'] value = request.POST.get('value', None) if isinstance(value, basestring): value = value.strip() results = add_object(my_type, oid, object_type, name, source, method, reference, analyst, value=value, file_=data, add_indicator=add_indicator, is_sort_relationships=True) if results['success']: subscription = { 'type': my_type, 'id': oid } if results.get('relationships', None): relationship = {'type': my_type, 'value': oid} relationships = results['relationships'] html = render_to_string('objects_listing_widget.html', {'objects': results['objects'], 'relationships': relationships, 'subscription': subscription}, RequestContext(request)) result = {'success': True, 'html': html, 'message': results['message']} rel_msg = render_to_string('relationships_listing_widget.html', {'relationship': relationship, 'nohide': True, 'relationships': relationships}, RequestContext(request)) result['rel_made'] = True result['rel_msg'] = rel_msg else: html = render_to_string('objects_listing_widget.html', {'objects': results['objects'], 'subscription': subscription}, RequestContext(request)) result = {'success': True, 'html': html, 'message': results['message']} else: message = "Error adding object: %s" % results['message'] result = {'success': False, 'message': message} if request.is_ajax(): return HttpResponse(json.dumps(result), mimetype="application/json") else: return render_to_response("file_upload_response.html", {'response': json.dumps(result)}, RequestContext(request)) else: error = "Expected POST" return render_to_response("error.html", {"error" : error }, RequestContext(request))