예제 #1
0
파일: api.py 프로젝트: crits/crits
    def obj_create(self, bundle, **kwargs):
        """
        Handles creating Targets through the API.

        :param bundle: Bundle containing the information to create the Target.
        :type bundle: Tastypie Bundle object.
        :returns: HttpResponse.
        """

        user = bundle.request.user
        data = bundle.data
        content = {'return_code': 1,
                   'type': 'Target'}

        if not user.has_access_to(TargetACL.WRITE):
            content['message'] = 'User does not have permission to create Object.'
            self.crits_response(content)

        result = upsert_target(data, user)

        content = {'return_code': 0,
                   'type': 'Target',
                   'id': result.get('id', '')}
        if result.get('message'):
            content['message'] = result.get('message')
        if result.get('id'):
            url = reverse('api_dispatch_detail',
                          kwargs={'resource_name': 'targets',
                                  'api_name': 'v1',
                                  'pk': result.get('id')})
            content['url'] = url
            content['id'] = result.get('id')
        if not result['success']:
            content['return_code'] = 1
        self.crits_response(content)
예제 #2
0
파일: api.py 프로젝트: xtracerx/crits
    def obj_create(self, bundle, **kwargs):
        """
        Handles creating Targets through the API.

        :param bundle: Bundle containing the information to create the Target.
        :type bundle: Tastypie Bundle object.
        :returns: HttpResponse.
        """

        analyst = bundle.request.user.username
        data = bundle.data
        result = upsert_target(data, analyst)

        content = {'return_code': 0,
                   'type': 'Target',
                   'id': result.get('id', '')}
        if result.get('message'):
            content['message'] = result.get('message')
        if result.get('id'):
            url = reverse('api_dispatch_detail',
                          kwargs={'resource_name': 'targets',
                                  'api_name': 'v1',
                                  'pk': result.get('id')})
            content['url'] = url
            content['id'] = result.get('id')
        if not result['success']:
            content['return_code'] = 1
        self.crits_response(content)
예제 #3
0
파일: api.py 프로젝트: threat-hunting/crits
    def obj_create(self, bundle, **kwargs):
        """
        Handles creating Targets through the API.

        :param bundle: Bundle containing the information to create the Target.
        :type bundle: Tastypie Bundle object.
        :returns: HttpResponse.
        """

        user = bundle.request.user
        data = bundle.data
        content = {'return_code': 1,
                   'type': 'Target'}

        if not user.has_access_to(TargetACL.WRITE):
            content['message'] = 'User does not have permission to create Object.'
            self.crits_response(content)

        result = upsert_target(data, user)

        content = {'return_code': 0,
                   'type': 'Target',
                   'id': result.get('id', '')}
        if result.get('message'):
            content['message'] = result.get('message')
        if result.get('id'):
            url = reverse('api_dispatch_detail',
                          kwargs={'resource_name': 'targets',
                                  'api_name': 'v1',
                                  'pk': result.get('id')})
            content['url'] = url
            content['id'] = result.get('id')
        if not result['success']:
            content['return_code'] = 1
        self.crits_response(content)
예제 #4
0
    def obj_create(self, bundle, **kwargs):
        """
        Handles creating Targets through the API.

        :param bundle: Bundle containing the information to create the Target.
        :type bundle: Tastypie Bundle object.
        :returns: Bundle object.
        :raises BadRequest: If creation fails.
        """

        analyst = bundle.request.user.username
        data = bundle.data
        result = upsert_target(data, analyst)
        if result['success']:
            return bundle
        else:
            raise BadRequest(result['message'])
예제 #5
0
파일: views.py 프로젝트: xtracerx/crits
def add_update_target(request):
    """
    Add/update a Target. Should be an AJAX POST.

    :param request: Django request.
    :type request: :class:`django.http.HttpRequest`
    :returns: :class:`django.http.HttpResponse`
    """

    if request.method == "POST":
        email = request.POST['email_address']
        new_email = email.strip().lower()
        form = TargetInfoForm(request.POST)
        analyst = request.user.username
        if form.is_valid():
            data = form.cleaned_data
            results = upsert_target(data, analyst)
            if results['success']:
                message = '<div>Click here to view the new target: <a href='
                message += '"%s">%s</a></div>' % (reverse(
                    'crits.targets.views.target_info', args=[new_email
                                                             ]), new_email)
                result = {'message': message}
            else:
                result = results
                result['form'] = form.as_table()
        else:
            result = {'message': ['<div>Form is invalid!</div>']}
            result['form'] = form.as_table()
        if request.is_ajax():
            return HttpResponse(json.dumps(result),
                                content_type="application/json")
        else:
            return HttpResponseRedirect(
                reverse('crits.targets.views.target_info', args=[email]))
    else:
        return render_to_response("error.html",
                                  {"error": "Expected AJAX POST"},
                                  RequestContext(request))
예제 #6
0
파일: views.py 프로젝트: 971sec/crits
def add_update_target(request):
    """
    Add/update a Target. Should be an AJAX POST.

    :param request: Django request.
    :type request: :class:`django.http.HttpRequest`
    :returns: :class:`django.http.HttpResponse`
    """

    if request.method == "POST":
        email = request.POST['email_address']
        new_email = email.strip().lower()
        form = TargetInfoForm(request.POST)
        analyst = request.user.username
        if form.is_valid():
            data = form.cleaned_data
            results = upsert_target(data, analyst)
            if results['success']:
                message = '<div>Click here to view the new target: <a href='
                message += '"%s">%s</a></div>' % (reverse('crits.targets.views.target_info',
                                                          args=[new_email]),
                                                  new_email)
                result = {'message': message}
            else:
                result = results
                result['form'] = form.as_table()
        else:
            result = {'message': ['<div>Form is invalid!</div>']}
            result['form'] = form.as_table()
        if request.is_ajax():
            return HttpResponse(json.dumps(result), content_type="application/json")
        else:
            return HttpResponseRedirect(reverse('crits.targets.views.target_info',
                                                args=[email]))
    else:
        return render_to_response("error.html",
                                  {"error" : "Expected AJAX POST" },
                                  RequestContext(request))