fix: implement user management UI

Complete user management frontend with resend invite, email validation,
and modal accessibility improvements.

Backend:

Add POST /api/v1/users/:id/resend-invite endpoint with authorization
Add 6 unit tests for resend invite handler
Fix feature flags default values
Frontend:

Add client-side email format validation with error display
Add resend invite button for pending users with Mail icon
Add Escape key keyboard navigation for modals
Fix PermissionsModal useState anti-pattern (now useEffect)
Add translations for de/es/fr/zh locales
Tests:

Enable 7 previously-skipped E2E tests (now 15 passing)
Fix Playwright locator strict mode violations
Update UsersPage test mocks for new API
Docs:

Document resend-invite API endpoint
Update CHANGELOG for Phase 6
This commit is contained in:
GitHub Actions
2026-01-24 22:00:45 +00:00
parent 4d816f1e47
commit 0492c1becb
17 changed files with 1206 additions and 562 deletions

View File

@@ -9,6 +9,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- **Phase 6: User Management UI Enhancements** (PR #XXX)
- **Resend Invite**: Administrators can resend invitation emails to pending users via new `POST /api/v1/users/{id}/resend-invite` endpoint
- **Email Validation**: Client-side email format validation in the invite modal with visible error messages
- **Modal Keyboard Navigation**: Escape key now closes invite and permissions modals for improved accessibility
- **7 E2E Tests Enabled**: Previously skipped user management tests now pass
### Fixed
- **PermissionsModal State Synchronization**: Fixed React anti-pattern where `useState` was used like `useEffect`, causing potential stale state when editing different users' permissions
### Added
- **Phase 4: Security Module Toggle Actions**: Security dashboard toggles for ACL, WAF, and Rate Limiting are now fully functional (PR #XXX)
- **Toggle Functionality**: Enable/disable security modules directly from the Security Dashboard UI
- **Backend Cache Layer**: 60-second TTL in-memory cache for settings to minimize database queries in middleware