docs(07-09): complete DataGrid visual indicators plan summary
This commit is contained in:
@@ -53,7 +53,7 @@ Plans:
|
||||
2. Running the audit returns a list of all access entries the user holds across the selected sites
|
||||
3. Results distinguish between direct role assignments, SharePoint group memberships, and inherited access
|
||||
4. Results can be exported to CSV or HTML in the same format established by v1.0 export patterns
|
||||
**Plans:** 8/8 plans complete
|
||||
**Plans:** 10/10 plans (8 original + 2 gap-closure)
|
||||
Plans:
|
||||
- [ ] 07-01-PLAN.md — UserAccessEntry model + service interfaces (Wave 1)
|
||||
- [ ] 07-02-PLAN.md — UserAccessAuditService implementation (Wave 2)
|
||||
@@ -63,6 +63,8 @@ Plans:
|
||||
- [ ] 07-06-PLAN.md — CSV + HTML export services (Wave 2)
|
||||
- [ ] 07-07-PLAN.md — Tab wiring, DI, localization (Wave 4)
|
||||
- [ ] 07-08-PLAN.md — Unit tests (Wave 5)
|
||||
- [ ] 07-09-PLAN.md — Gap closure: DataGrid visual indicators + ObjectType column (Wave 6)
|
||||
- [ ] 07-10-PLAN.md — Gap closure: Debounced search unit test (Wave 6)
|
||||
|
||||
### Phase 8: Simplified Permissions
|
||||
**Goal**: Permissions reports are readable by non-technical users through plain-language labels, color coding, and a configurable detail level
|
||||
|
||||
@@ -3,14 +3,14 @@ gsd_state_version: 1.0
|
||||
milestone: v1.0
|
||||
milestone_name: milestone
|
||||
status: completed
|
||||
stopped_at: Completed 07-08-PLAN.md
|
||||
last_updated: "2026-04-07T11:00:01.832Z"
|
||||
stopped_at: Completed 07-09-PLAN.md
|
||||
last_updated: "2026-04-07T11:15:13.659Z"
|
||||
last_activity: 2026-04-07 — Roadmap created (Phases 6-9), 10/10 requirements mapped
|
||||
progress:
|
||||
total_phases: 4
|
||||
completed_phases: 2
|
||||
total_plans: 13
|
||||
completed_plans: 13
|
||||
completed_phases: 1
|
||||
total_plans: 15
|
||||
completed_plans: 14
|
||||
---
|
||||
|
||||
# Project State
|
||||
@@ -55,6 +55,7 @@ Phase 6 [ ] → Phase 7 [ ] → Phase 8 [ ] → Phase 9 [ ]
|
||||
| Phase 07-user-access-audit P05 | 4 | 2 tasks | 2 files |
|
||||
| Phase 07-user-access-audit P07 | 8 | 3 tasks | 7 files |
|
||||
| Phase 07-user-access-audit P08 | 2 | 2 tasks | 4 files |
|
||||
| Phase 07-user-access-audit P09 | 6 | 1 tasks | 1 files |
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
@@ -94,6 +95,7 @@ Decisions are logged in PROJECT.md Key Decisions table.
|
||||
- [Phase 07-user-access-audit]: UserAccessAuditView created inline (Rule 3) when 07-05 found missing — follows 07-05 spec with two-panel layout
|
||||
- [Phase 07-user-access-audit]: Used internal TestRunOperationAsync for ViewModel tests; Application.Current null in tests lets else branch run synchronously
|
||||
- [Phase 07-user-access-audit]: WeakReferenceMessenger.Default.Reset() in test constructor prevents cross-test contamination from message registrations
|
||||
- [Phase 07-09]: Guest badge (orange pill) and warning icon (⚠) use DataTrigger-driven Visibility on DataGridTemplateColumn cells — collapsed by default, visible only when IsExternalUser/IsHighPrivilege=True
|
||||
|
||||
### Pending Todos
|
||||
|
||||
@@ -105,6 +107,6 @@ None.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-04-07T11:00:01.830Z
|
||||
Stopped at: Completed 07-08-PLAN.md
|
||||
Last session: 2026-04-07T11:15:13.657Z
|
||||
Stopped at: Completed 07-09-PLAN.md
|
||||
Resume file: None
|
||||
|
||||
92
.planning/phases/07-user-access-audit/07-09-SUMMARY.md
Normal file
92
.planning/phases/07-user-access-audit/07-09-SUMMARY.md
Normal file
@@ -0,0 +1,92 @@
|
||||
---
|
||||
phase: 07-user-access-audit
|
||||
plan: 09
|
||||
subsystem: ui
|
||||
tags: [wpf, xaml, datagrid, datatrigger, visual-indicators]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 07-05
|
||||
provides: UserAccessAuditView XAML with DataGrid columns (User, Site, Object, Permission Level, Access Type, Granted Through)
|
||||
provides:
|
||||
- DataGrid User column with orange 'Guest' pill badge for external users (IsExternalUser DataTrigger)
|
||||
- DataGrid Permission Level column with red warning icon for high-privilege entries (IsHighPrivilege DataTrigger)
|
||||
- DataGrid ObjectType column showing Site Collection/Site/List/Folder distinction
|
||||
affects: [07-verification, testing]
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [DataGridTemplateColumn with DataTrigger-driven visibility for per-cell visual indicators]
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- SharepointToolbox/Views/Tabs/UserAccessAuditView.xaml
|
||||
|
||||
key-decisions:
|
||||
- "Guest badge (orange 'Guest' pill) uses Border.Visibility via DataTrigger on IsExternalUser=True, collapsed by default"
|
||||
- "Warning icon (red ⚠) uses TextBlock.Visibility via DataTrigger on IsHighPrivilege=True, collapsed by default"
|
||||
- "ObjectType column inserted as plain DataGridTextColumn between Object and Permission Level"
|
||||
|
||||
patterns-established:
|
||||
- "DataGridTemplateColumn with StackPanel + DataTrigger-driven Visibility for inline cell badges/icons"
|
||||
|
||||
requirements-completed: [UACC-01, UACC-02]
|
||||
|
||||
# Metrics
|
||||
duration: 6min
|
||||
completed: 2026-04-07
|
||||
---
|
||||
|
||||
# Phase 07 Plan 09: DataGrid Visual Indicators Summary
|
||||
|
||||
**DataGrid enhanced with orange guest badge on external user rows, red warning icon on high-privilege permission cells, and ObjectType column — closing verification gaps 1 and 2**
|
||||
|
||||
## Performance
|
||||
|
||||
- **Duration:** 6 min
|
||||
- **Started:** 2026-04-07T11:13:59Z
|
||||
- **Completed:** 2026-04-07T11:14:36Z
|
||||
- **Tasks:** 1
|
||||
- **Files modified:** 1
|
||||
|
||||
## Accomplishments
|
||||
- User column converted from plain DataGridTextColumn to DataGridTemplateColumn with DataTrigger-driven orange "Guest" pill badge for external users (IsExternalUser=true)
|
||||
- Permission Level column converted to DataGridTemplateColumn with DataTrigger-driven red warning icon (⚠) for high-privilege entries (IsHighPrivilege=true)
|
||||
- ObjectType column added between Object and Permission Level columns, bound to ObjectType property on UserAccessEntry
|
||||
|
||||
## Task Commits
|
||||
|
||||
Each task was committed atomically:
|
||||
|
||||
1. **Task 1: Add guest badge, warning icon, and ObjectType column to DataGrid** - `33833dc` (feat)
|
||||
|
||||
**Plan metadata:** (docs commit follows)
|
||||
|
||||
## Files Created/Modified
|
||||
- `SharepointToolbox/Views/Tabs/UserAccessAuditView.xaml` - DataGrid columns updated with visual indicators and ObjectType column
|
||||
|
||||
## Decisions Made
|
||||
- Guest badge uses Border collapsed by default, made visible via DataTrigger on IsExternalUser=True — ensures no visual noise for internal users
|
||||
- Warning icon uses TextBlock collapsed by default, made visible via DataTrigger on IsHighPrivilege=True — coexists with bold row style already applied at row level
|
||||
- ObjectType column width set to 90 (narrower than Object column at 140) since values like "Site Collection", "List" are short
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Issues Encountered
|
||||
None
|
||||
|
||||
## User Setup Required
|
||||
None - no external service configuration required.
|
||||
|
||||
## Next Phase Readiness
|
||||
- Verification gaps 1 and 2 closed: DataGrid now shows guest badges for external users, warning icons for high-privilege entries, and ObjectType column
|
||||
- UserAccessAuditView.xaml is complete per the 07-VERIFICATION spec
|
||||
- Ready for final verification phase review
|
||||
|
||||
---
|
||||
*Phase: 07-user-access-audit*
|
||||
*Completed: 2026-04-07*
|
||||
Reference in New Issue
Block a user