From 63b228837a27eda562c4335148c06c3ad0a89981 Mon Sep 17 00:00:00 2001 From: Johan Lundberg Date: Mon, 9 Jan 2023 11:49:59 +0100 Subject: [PATCH] delete_one do not accept just a key as delete previous did change delete_one to delete_many instead of iterating through results deleting all found documents --- src/saml2/mongo_store.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/saml2/mongo_store.py b/src/saml2/mongo_store.py index 451442fb6..14be9c9ff 100644 --- a/src/saml2/mongo_store.py +++ b/src/saml2/mongo_store.py @@ -98,8 +98,7 @@ def get_assertions_by_subject(self, name_id=None, session_index=None, requested_ def remove_authn_statements(self, name_id): logger.debug("remove authn about: %s", name_id) key = sha1(code_binary(name_id)).hexdigest() - for item in self.assertion.find({"name_id_key": key}): - self.assertion.delete_one(item["_id"]) + self.assertion.delete_many(filter={"name_id_key": key}) def get_authn_statements(self, name_id, session_index=None, requested_context=None): """ @@ -220,13 +219,11 @@ def get(self, value=None, **kwargs): def remove(self, key=None, **kwargs): if key is None: if kwargs: - for item in self.db.find(kwargs): - self.db.delete_one(item["_id"]) + self.db.delete_many(filter=kwargs) else: doc = {self.primary_key: key} doc.update(kwargs) - for item in self.db.find(doc): - self.db.delete_one(item["_id"]) + self.db.delete_many(filter=doc) def keys(self): for item in self.db.find():