GDPRScanner/GDPR_ERRORLOG.md
StyxX65 b2bfa40f27 v1.6.20 — Scan history, user-scoped sharing, export fixes, email fixes
New features

  Scan history browser
  Results from any past scan session can now be reviewed without running a new scan. On page load the latest
  completed session is loaded automatically. A Sessions button opens a picker listing all past sessions with
  date, sources, item count, and Delta/Latest badges. All filters, exports, and disposition tagging work
  normally in history mode. Starting a new scan exits history mode.

  User-scoped viewer tokens (#34)
  Viewer token links can now be restricted to a specific employee so they only see their own flagged files —
  across both M365 and Google Workspace. The Share modal's scope selector gains a User option with a searchable
   name autocomplete. Selecting a person stores both their M365 and GWS email addresses; the server filters by
  account_id IN (list) so items from either platform are included. The viewer header shows the person's full
  name in a locked identity badge.

  ---
  Bug fixes

  GWS and local/SMB results missing from exports
  Two silent failures caused Google Workspace and file-scan results to disappear from Art.30 and Excel exports
  after a page reload:
  - google_scan.py called _db.end_scan() (method doesn't exist — should be finish_scan), so GWS scan records
  never got finished_at set and were permanently excluded from get_session_items()
  - google_scan.py emitted scan_done instead of google_scan_done, breaking SSE teardown logic
  - File scan called begin_scan() with keyword arguments it doesn't accept, silently leaving _db_scan_id = None
   so local/SMB items were never written to the database

  Graph sendMail reported as failure despite email being delivered
  _post() called r.json() unconditionally. Graph's sendMail returns HTTP 202 with no body on success, causing a
   JSONDecodeError that was caught and reported as a send failure. Fixed with r.json() if r.content else {}.

  Graph error hidden by generic SMTP message
  When Graph failed and no SMTP host was saved, the real Graph error was swallowed by "No SMTP host
  configured". The error is now surfaced directly.

  Gmail vs Google Workspace SMTP errors
  Auth failure messages now distinguish between personal Gmail (@gmail.com) and Google Workspace custom-domain
  accounts. Workspace errors point to the admin console (SMTP relay, 2-Step Verification policy) rather than
  the user's personal security settings.
2026-04-18 13:59:27 +02:00

2.3 KiB

GDPR ERRORLOG

08.51.11 Scanner… 09.18.52 Årsrapport 2024 underskrevet af bestyrelsen.pdf: Skipped — 28.4 MB exceeds 20.0 MB limit 09.36.26 Google Workspace — henr218d@pers.gudenaaskolen.dk 09.36.26 henr218d@pers.gudenaaskolen.dk — Gmail 09.37.56 henr218d@pers.gudenaaskolen.dk — Google Drive 10.00.13 Drive/henr218d@pers.gudenaaskolen.dk: The read operation timed out 10.00.13 Google Workspace — char8467@pers.gudenaaskolen.dk 10.00.13 char8467@pers.gudenaaskolen.dk — Gmail 10.00.24 char8467@pers.gudenaaskolen.dk — Google Drive 10.00.38 Artikel 30-rapport klar. 10.54.48 Live-log genoptaget — tidligere indlæg afspillet fra igangværende scanning. 11.13.12 Mikkel Vermehren.pdf: unhashable type: 'dict' 11.13.43 Standpunkt Gudenåskolen 20-2-2019.pdf: unhashable type: 'dict' 11.14.34 Alvilda afgangsbevis.pdf: unhashable type: 'dict' 11.21.26 Google Workspace — tina937n@pers.gudenaaskolen.dk 11.21.26 tina937n@pers.gudenaaskolen.dk — Gmail 11.21.39 tina937n@pers.gudenaaskolen.dk — Google Drive 11.31.53 Google Workspace — char8467@pers.gudenaaskolen.dk 11.31.53 char8467@pers.gudenaaskolen.dk — Gmail 11.32.04 char8467@pers.gudenaaskolen.dk — Google Drive 11.41.02 Bjarke Markussen.pdf: unhashable type: 'dict' 11.41.07 Claus Pawelczyk.pdf: unhashable type: 'dict' 11.41.09 5. BevisDiploma forandringsledelse Jacob Holm.PDF: unhashable type: 'dict' 11.41.10 6. BevisDiploma pædagogisk ledelse Jacob Holm.PDF: unhashable type: 'dict' 11.41.12 Jacob Holm.pdf: unhashable type: 'dict' 11.41.18 Jens Horn.pdf: unhashable type: 'dict' 11.41.23 BevisDiploma.pdf: unhashable type: 'dict' 11.41.26 Lone M. Laugesen.pdf: unhashable type: 'dict' 11.41.31 Bjarke Markussen.pdf: unhashable type: 'dict' 11.41.37 Claus Pawelczyk.pdf: unhashable type: 'dict' 11.41.47 Jens Horn.pdf: unhashable type: 'dict' 11.41.58 Rami Sverdlin.pdf: unhashable type: 'dict' 11.41.59 BevisDiploma.pdf: unhashable type: 'dict' 11.42.00 Lone M. Laugesen.pdf: unhashable type: 'dict' 11.42.04 Susanne h. Petersen.pdf: unhashable type: 'dict' 11.42.15 Diplom i Ledelse eksamensbevis.pdf: unhashable type: 'dict' 11.42.16 Trine Bisgaard.pdf: unhashable type: 'dict' 11.42.20 Rami Sverdlin.pdf: unhashable type: 'dict' 11.42.23 Susanne h. Petersen.pdf: unhashable type: 'dict' 11.42.42 Bjarke Markussen.pdf: unhashable type: 'dict'