## Summary
- Adds `UserProfile` model with mutually exclusive **Employee** / **Client** types
- Replaces auto-Employee signal with auto-Client profile on user creation
- Data migration: users with time log entries → Employee; others → Client (orphan Employee rows removed)
- Admin UI at `/financial/manage_users` to set any user's type; profile page shows current type
- **Employees** can log time; **Clients** get read-only access to reports and time logs
- Time logs, reports, and dashboard filter to employees only
- 14 new tests covering signals, type switching, access control, and filtering
## Design decisions (from issue Q&A)
1. Client login = read-only financial access (reports + time logs, no edit/log time)
2. Employee and Client are strictly mutually exclusive
3. Admins (superusers) can change type via Manage Users
4. Bulk migration applied for existing users
## Test plan
- [x] `python manage.py test financial.tests` (14 tests pass)
- [x] `python manage.py test public.tests` (21 tests pass)
- [ ] Run migration on staging: `python manage.py migrate`
- [ ] Verify admin can set user types at `/financial/manage_users`
- [ ] Verify employee can log time at `/financial/timekeeping`
- [ ] Verify client sees reports/time logs read-only, cannot log time
- [ ] Verify employee filter dropdown excludes clients
Closes #14
Closes#14. Users get a UserProfile (Employee or Client) instead of auto-creating Employee records; admins manage types via profile and manage-users UI; time entry and reports filter to employees only; clients get read-only financial access.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
UserProfilemodel with mutually exclusive Employee / Client types/financial/manage_usersto set any user's type; profile page shows current typeDesign decisions (from issue Q&A)
Test plan
python manage.py test financial.tests(14 tests pass)python manage.py test public.tests(21 tests pass)python manage.py migrate/financial/manage_users/financial/timekeepingCloses #14