diff options
author | Johan Lundberg <lundberg@sunet.se> | 2023-01-09 11:49:59 +0100 |
---|---|---|
committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2023-01-23 10:16:12 +0200 |
commit | 63b228837a27eda562c4335148c06c3ad0a89981 (patch) | |
tree | 71be25183fd1e25813312b9214a130d031de6251 | |
parent | 803eb892542a721fe6c494b91c3924a31ec6e403 (diff) | |
download | pysaml2-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.py | 9 |
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(): |