+ separate function change_sharing_group using update_event

pull/36/head
cgi 2017-01-09 16:19:20 +01:00
parent 59aa5adfee
commit 60c02cb5e9
2 changed files with 17 additions and 6 deletions

View File

@ -44,7 +44,7 @@ class distributions(object):
this_community = 1
connected_communities = 2
all_communities = 3
sharing_group = 4
class threat_level(object):
"""Enumeration of the available threat levels."""
@ -309,10 +309,10 @@ class PyMISP(object):
# ######### Event handling (Json only) #########
# ##############################################
def _prepare_full_event(self, distribution, threat_level_id, analysis, info, date=None, published=False, orgc_id=None, org_id=None):
def _prepare_full_event(self, distribution, threat_level_id, analysis, info, date=None, published=False, orgc_id=None, org_id=None, sharing_group_id=None):
misp_event = MISPEvent(self.describe_types)
misp_event.set_all_values(info=info, distribution=distribution, threat_level_id=threat_level_id,
analysis=analysis, date=date, orgc_id=orgc_id, org_id=org_id)
analysis=analysis, date=date, orgc_id=orgc_id, org_id=org_id, sharing_group_id=sharing_group_id)
if published:
misp_event.publish()
return misp_event
@ -353,8 +353,16 @@ class PyMISP(object):
e.threat_level_id = threat_level_id
return self.update_event(event['Event']['id'], json.dumps(e, cls=EncodeUpdate))
def new_event(self, distribution=None, threat_level_id=None, analysis=None, info=None, date=None, published=False, orgc_id=None, org_id=None):
misp_event = self._prepare_full_event(distribution, threat_level_id, analysis, info, date, published, orgc_id, org_id)
def change_sharing_group(self, event, sharing_group_id):
e = MISPEvent(self.describe_types)
e.load(event)
e.distribution = 4 # Needs to be 'Sharing group'
e.sharing_group_id = sharing_group_id
return self.update_event(event['Event']['id'], json.dumps(e, cls=EncodeUpdate))
def new_event(self, distribution=None, threat_level_id=None, analysis=None, info=None, date=None, published=False, orgc_id=None, org_id=None, sharing_group_id=None):
misp_event = self._prepare_full_event(distribution, threat_level_id, analysis, info, date, published, orgc_id, org_id, sharing_group_id)
return self.add_event(json.dumps(misp_event, cls=EncodeUpdate))
def add_tag(self, event, tag):
@ -1046,10 +1054,11 @@ class PyMISP(object):
def get_sharing_groups(self):
session = self.__prepare_session()
url = urljoin(self.root_url, 'sharing_groups/index.json')
url = urljoin(self.root_url, 'sharing_groups')
response = session.get(url)
return self._check_response(response)['response'][0]
# ############## Users ##################
def _set_user_parameters(self, email, org_id, role_id, password, external_auth_required,

View File

@ -512,6 +512,8 @@ class MISPEvent(object):
to_return['Event']['RelatedEvent'] = self.RelatedEvent
if self.Org:
to_return['Event']['Org'] = self.Org
if self.sharing_group_id:
to_return['Event']['sharing_group_id'] = self.sharing_group_id
if self.ShadowAttribute:
to_return['Event']['ShadowAttribute'] = self.ShadowAttribute
if self.proposal_email_lock is not None: