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

        :param bundle: Bundle containing the information to create the Campaign.
        :type bundle: Tastypie Bundle object.
        :returns: Bundle object.
        :raises BadRequest: If a campaign name is not provided or creation fails.

        """
        analyst = bundle.request.user.username
        name = bundle.data.get('name', None)
        description = bundle.data.get('description', None)
        aliases = bundle.data.get('aliases', None)
        bucket_list = bundle.data.get('bucket_list', None)
        ticket = bundle.data.get('ticket', None)

        if not name:
            raise BadRequest('Need a Campaign name.')
        result = add_campaign(name, description, aliases, analyst, bucket_list,
                              ticket)
        if not result['success']:
            raise BadRequest(result['message'])
        else:
            return bundle
예제 #2
0
파일: api.py 프로젝트: dmbuchta/crits
    def obj_create(self, bundle, **kwargs):
        """
        Handles creating Campaigns through the API.

        :param bundle: Bundle containing the information to create the Campaign.
        :type bundle: Tastypie Bundle object.
        :returns: Bundle object.
        :raises BadRequest: If a campaign name is not provided or creation fails.

        """
        analyst = bundle.request.user.username
        name = bundle.data.get('name', None)
        description = bundle.data.get('description', None)
        aliases = bundle.data.get('aliases', None)
        bucket_list = bundle.data.get('bucket_list', None)
        ticket = bundle.data.get('ticket', None)

        if not name:
            raise BadRequest('Need a Campaign name.')
        result =  add_campaign(name,
                                description,
                                aliases,
                                analyst,
                                bucket_list,
                                ticket)
        if not result['success']:
            raise BadRequest(result['message'])
        else:
            return bundle
예제 #3
0
    def parse_campaigns(self, indicators, campaigns):

        for campaign in campaigns:
            res = add_campaign(str(campaign.title),
                               str(campaign.description),
                               None,
                               'taxii',
                               source=self.source.name,
                               id=self.package.id_)

            if 'id' in res:
                self.imported[indicators[0].id_] = ('Campaign',
                                                    class_from_id(
                                                        'Campaign', res['id']))

        return
예제 #4
0
    def obj_create(self, bundle, **kwargs):
        """
        Handles creating Campaigns through the API.

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

        """
        user = bundle.request.user
        name = bundle.data.get('name', None)
        description = bundle.data.get('description', None)
        aliases = bundle.data.get('aliases', None)
        bucket_list = bundle.data.get('bucket_list', None)
        ticket = bundle.data.get('ticket', None)

        content = {'return_code': 1,
                   'type': 'Campaign'}
        if not name:
            content['message'] = 'Need a Campaign name.'
            self.crits_response(content)

        if user.has_access_to(CampaignACL.WRITE):
            result = add_campaign(name,
                                  description,
                                  aliases,
                                  user,
                                  bucket_list,
                                  ticket)
        else:
            result = {'success':False,
                      'message':'User does not have permission to create Object.'}

        if result.get('id'):
            url = reverse('api_dispatch_detail',
                          kwargs={'resource_name': 'campaigns',
                                  'api_name': 'v1',
                                  'pk': result.get('id')})
            content['url'] = url
            content['id'] = result.get('id')

        if result['success']:
            content['return_code'] = 0

        content['message'] = result['message']
        self.crits_response(content)