Exemplo n.º 1
0
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))
Exemplo n.º 2
0
Arquivo: views.py Projeto: vsbca/crits
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))
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
Arquivo: views.py Projeto: 0x3a/crits
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))