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.
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'