fix: Do not let a user pass a full dict as tagname

pull/1270/head
Raphaël Vinot 2024-07-16 12:44:47 +02:00
parent 4e85c93a9f
commit 5a17f057e7
1 changed files with 5 additions and 1 deletions

View File

@ -3823,7 +3823,7 @@ class PyMISP:
raise PyMISPError('The misp_entity must be MISPEvent, MISPObject or MISPAttribute') raise PyMISPError('The misp_entity must be MISPEvent, MISPObject or MISPAttribute')
def tag(self, misp_entity: AbstractMISP | str | dict[str, Any], tag: MISPTag | str, def tag(self, misp_entity: AbstractMISP | str | dict[str, Any], tag: MISPTag | str | dict[str, Any],
local: bool = False, relationship_type: str | None = None) -> dict[str, Any] | list[dict[str, Any]]: local: bool = False, relationship_type: str | None = None) -> dict[str, Any] | list[dict[str, Any]]:
"""Tag an event or an attribute. """Tag an event or an attribute.
@ -3835,8 +3835,12 @@ class PyMISP:
uuid = get_uuid_or_id_from_abstract_misp(misp_entity) uuid = get_uuid_or_id_from_abstract_misp(misp_entity)
if isinstance(tag, MISPTag): if isinstance(tag, MISPTag):
tag_name = tag.name if 'name' in tag else "" tag_name = tag.name if 'name' in tag else ""
elif isinstance(tag, dict):
tag_name = tag.get('name', '')
else: else:
tag_name = tag tag_name = tag
if not tag_name:
raise PyMISPError('tag must be a MISPTag object, a dict with a name key, or a string, and it cannot be empty.')
to_post = {'uuid': uuid, 'tag': tag_name, 'local': local} to_post = {'uuid': uuid, 'tag': tag_name, 'local': local}
if relationship_type: if relationship_type:
to_post['relationship_type'] = relationship_type to_post['relationship_type'] = relationship_type