feat: scan history browser, user-scoped viewer tokens, export fixes, email fixes (v1.6.20)
- Scan history browser (history.js, GET /api/db/sessions, get_sessions(), get_session_items(ref_scan_id)) — review any past session without rescanning - User-scoped viewer tokens (#34) — scope by individual employee across M365 and GWS; autocomplete from Accounts list; dual-email support - Fix: GWS scan never marked finished (end_scan → finish_scan) and emitted wrong SSE event (scan_done → google_scan_done), excluding GWS items from all exports - Fix: file scan begin_scan called with wrong keyword args (TypeError swallowed), so local/SMB items were never written to DB - Fix: Graph sendMail reported failure on success — _post() now returns {} on empty 202 response instead of raising JSONDecodeError - Fix: Graph error hidden behind generic "No SMTP host" message when both Graph and SMTP were unavailable - Fix: Gmail vs Google Workspace SMTP error messages distinguished by username domain; Workspace errors point to admin console, not personal security settings - Docs: update README, MANUAL-EN, MANUAL-DA, CLAUDE.md, TODO.md, CHANGELOG.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
e64d7eb958
commit
c9aab19a97
24 files changed
+753
-70
No files matched your search
+5
-5
@@ -182,11 +182,11 @@ def run_file_scan(source: dict):
|
||||
_db_scan_id: int | None = None
|
||||
if _db:
|
||||
try:
|
||||
_db_scan_id = _db.begin_scan(
|
||||
sources=[source.get("source_type", "local")],
|
||||
user_count=0,
|
||||
options=source,
|
||||
)
|
||||
_db_scan_id = _db.begin_scan({
|
||||
"sources": [source.get("source_type", "local")],
|
||||
"user_ids": [],
|
||||
"options": source,
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error("[db] start_scan failed: %s", e)
|
||||
|
||||
|
||||
Reference in new issue
Block a user