Fix: WebDAV PROPFIND-500 op klant-rootmap (impliciete map zonder placeholder) #1

Samengevoegd
jemasupport heeft 1 commit van claude/magical-pasteur-ef3e51 samengevoegd in main 2026-07-10 00:42:25 +02:00
Eigenaar

get_member_names lijstte submappen uit MinIO CommonPrefixes — die S3
synthetiseert zodra er een object onder een sub-prefix staat, óók zónder
0-byte placeholder. get_member herkende zo'n map echter alleen via een
placeholder (head_object op "{key}/") of een template-match, en gaf anders
None. Web-UI/migratie-uploads schrijven keys als {klant}/{pad}/{uuid8}__{naam}
zónder ensure_folder, dus hun bovenliggende mappen bestaan alleen impliciet.
Eén zo'n child → None → wsgidav's assert member is not None → DAVError 500
op de HÉLE map (o.a. "… - Je-Ma ICT Beheer").

  • get_member: herken impliciete mappen (prefix met objecten, geen placeholder)
    via _prefix_heeft_objecten → resolveert nu naar een navigeerbare KlantFolder.
  • _FilteredDAVCollection: override get_member_list zodat een child dat tóch
    naar None resolvet (bv. race met soft-delete) wordt overgeslagen + gelogd,
    i.p.v. de hele map met een 500 neer te halen.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

get_member_names lijstte submappen uit MinIO CommonPrefixes — die S3 synthetiseert zodra er een object onder een sub-prefix staat, óók zónder 0-byte placeholder. get_member herkende zo'n map echter alleen via een placeholder (head_object op "{key}/") of een template-match, en gaf anders None. Web-UI/migratie-uploads schrijven keys als {klant}/{pad}/{uuid8}__{naam} zónder ensure_folder, dus hun bovenliggende mappen bestaan alleen impliciet. Eén zo'n child → None → wsgidav's `assert member is not None` → DAVError 500 op de HÉLE map (o.a. "… - Je-Ma ICT Beheer"). - get_member: herken impliciete mappen (prefix met objecten, geen placeholder) via _prefix_heeft_objecten → resolveert nu naar een navigeerbare KlantFolder. - _FilteredDAVCollection: override get_member_list zodat een child dat tóch naar None resolvet (bv. race met soft-delete) wordt overgeslagen + gelogd, i.p.v. de hele map met een 500 neer te halen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
get_member_names lijstte submappen uit MinIO CommonPrefixes — die S3
synthetiseert zodra er een object onder een sub-prefix staat, óók zónder
0-byte placeholder. get_member herkende zo'n map echter alleen via een
placeholder (head_object op "{key}/") of een template-match, en gaf anders
None. Web-UI/migratie-uploads schrijven keys als {klant}/{pad}/{uuid8}__{naam}
zónder ensure_folder, dus hun bovenliggende mappen bestaan alleen impliciet.
Eén zo'n child → None → wsgidav's `assert member is not None` → DAVError 500
op de HÉLE map (o.a. "… - Je-Ma ICT Beheer").

- get_member: herken impliciete mappen (prefix met objecten, geen placeholder)
  via _prefix_heeft_objecten → resolveert nu naar een navigeerbare KlantFolder.
- _FilteredDAVCollection: override get_member_list zodat een child dat tóch
  naar None resolvet (bv. race met soft-delete) wordt overgeslagen + gelogd,
  i.p.v. de hele map met een 500 neer te halen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
jemasupport commit a268b7d9be samengevoegd in main 2026-07-10 00:42:25 +02:00
Log in om deel te nemen aan deze discussie.
Geen beoordelaars
Geen label
Geen mijlpaal
Geen project
Niet toegewezen
1 deelnemer
Notificaties
Vervaldatum
De deadline is ongeldig of buiten bereik. Gebruik het formaat "jjjj-mm-dd'.

Geen vervaldatum ingesteld.

Afhankelijkheden

Geen afhankelijkheden ingesteld.

Referentie
jemasupport/DMSApp!1
Geen beschrijving gegeven.