summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Lundberg <lundberg@sunet.se>2023-01-09 11:49:59 +0100
committerIvan Kanakarakis <ivan.kanak@gmail.com>2023-01-23 10:16:12 +0200
commit63b228837a27eda562c4335148c06c3ad0a89981 (patch)
tree71be25183fd1e25813312b9214a130d031de6251
parent803eb892542a721fe6c494b91c3924a31ec6e403 (diff)
downloadpysaml2-63b228837a27eda562c4335148c06c3ad0a89981.tar.gz
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
-rw-r--r--src/saml2/mongo_store.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/saml2/mongo_store.py b/src/saml2/mongo_store.py
index 451442fb..14be9c9f 100644
--- a/src/saml2/mongo_store.py
+++ b/src/saml2/mongo_store.py
@@ -98,8 +98,7 @@ class SessionStorageMDB:
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 @@ class MDB:
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():