Dev
3de737ac3f
feat(07-04): implement UserAccessAuditViewModel
- Extends FeatureViewModelBase with RunOperationAsync calling IUserAccessAuditService.AuditUsersAsync
- People picker with 300ms debounced Graph search via IGraphUserSearchService.SearchUsersAsync
- SelectedUsers ObservableCollection<GraphUserResult> with AddUserCommand/RemoveUserCommand
- Results ObservableCollection<UserAccessEntry> with CollectionViewSource grouping (by user/site) and FilterText predicate
- Summary banner properties: TotalAccessCount, SitesCount, HighPrivilegeCount (computed from Results)
- ExportCsvCommand/ExportHtmlCommand using UserAccessCsvExportService/UserAccessHtmlExportService
- Site selection with _hasLocalSiteOverride + OnGlobalSitesChanged pattern from PermissionsViewModel
- Dual constructors (DI + internal test constructor omitting export services)
- OnTenantSwitched resets all state (results, users, search, sites)
2026-04-07 12:44:02 +02:00
..
2026-04-03 10:20:23 +02:00
2026-04-03 10:20:23 +02:00
2026-04-07 10:08:19 +02:00
2026-04-07 10:08:19 +02:00
2026-04-07 10:06:57 +02:00
2026-04-07 10:08:19 +02:00
2026-04-02 12:32:41 +02:00
2026-04-07 10:08:19 +02:00
2026-04-03 10:24:23 +02:00
2026-04-07 10:08:52 +02:00
2026-04-07 12:44:02 +02:00