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-07 09:19:03 +02:00
2026-04-07 12:37:00 +02:00
2026-04-03 10:03:41 +02:00
2026-04-07 10:06:40 +02:00
2026-04-07 09:19:03 +02:00
2026-04-03 10:13:39 +02:00
2026-04-07 12:40:51 +02:00
2026-04-07 12:44:02 +02:00
2026-04-07 09:15:02 +02:00
2026-04-03 10:19:16 +02:00
2026-04-03 10:24:32 +02:00
2026-04-02 13:50:35 +02:00
2026-04-07 10:07:35 +02:00
2026-04-07 10:07:35 +02:00
2026-04-03 16:36:07 +02:00