Skip to content

Commit c8be65d

Browse files
committed
api: additional component check on deletion
1 parent 978607f commit c8be65d

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

mpcontribs-api/mpcontribs/api/contributions/document.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from hashlib import md5
66
from math import isnan
7+
from bson.dbref import DBRef
78
from datetime import datetime
89
from flask import current_app
910
from atlasq import AtlasManager, AtlasQ
@@ -317,10 +318,11 @@ def pre_delete(cls, sender, document, **kwargs):
317318
document.reload(*args)
318319

319320
for component in COMPONENTS.keys():
320-
# check if other contributions exist before deletion!
321-
for idx, obj in enumerate(getattr(document, component)):
321+
# check if other contributions exist before deletion
322+
# and make sure component still exists (getattr converts ref to object)
323+
for obj in getattr(document, component):
322324
q = {component: obj.id}
323-
if sender.objects(**q).count() < 2:
325+
if sender.objects(**q).count() < 2 and not isinstance(obj, DBRef):
324326
obj.delete()
325327

326328

0 commit comments

Comments
 (0)