- 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>
34 lines
973 B
JavaScript
34 lines
973 B
JavaScript
// state.js — shared mutable state for GDPRScanner
|
|
// Imported by every module that needs cross-module state.
|
|
// Use S.varName everywhere instead of bare varName.
|
|
|
|
export const S = {
|
|
// Scan results
|
|
flaggedData: [],
|
|
filteredData: [],
|
|
totalCPR: 0,
|
|
isListView: false,
|
|
// SSE connection
|
|
es: null,
|
|
_userStartedScan: false,
|
|
// Scan running flags + progress
|
|
_m365ScanRunning: false,
|
|
_googleScanRunning: false,
|
|
_fileScanRunning: false,
|
|
_srcPct: { m365: 0, google: 0, file: 0 },
|
|
_progressCurrentUser: '',
|
|
// Users
|
|
_allUsers: [],
|
|
// Auth
|
|
_currentAppMode: null,
|
|
// Profiles
|
|
_profiles: [],
|
|
_activeProfileId: null,
|
|
_pendingProfileSources: [],
|
|
_pendingGoogleSources: null,
|
|
// Sources
|
|
_fileSources: [],
|
|
// History browser
|
|
_historyRefScanId: null, // null = live/SSE, number = viewing a past session
|
|
};
|