From 60c02cb5e9dd00bb9c6fed9a093a2d0b44511d14 Mon Sep 17 00:00:00 2001 From: cgi Date: Mon, 9 Jan 2017 16:19:20 +0100 Subject: [PATCH] + separate function change_sharing_group using update_event --- pymisp/api.py | 21 +++++++++++++++------ pymisp/mispevent.py | 2 ++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/pymisp/api.py b/pymisp/api.py index f846a8e..c0227f3 100644 --- a/pymisp/api.py +++ b/pymisp/api.py @@ -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, diff --git a/pymisp/mispevent.py b/pymisp/mispevent.py index 8e6825a..03e3396 100644 --- a/pymisp/mispevent.py +++ b/pymisp/mispevent.py @@ -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: