- Introduced invitation_id handling for member management, allowing for unique identification of pending invitations. - Added methods to create, update, and remove members by invitation_id, improving the invitation workflow. - Updated member data structures and API responses to include invitation-related fields, enhancing clarity and usability. - Implemented tests for invitation ID operations, ensuring robust validation and error handling. - Refactored team access checks to streamline member management processes.
140 lines
4.3 KiB
Markdown
140 lines
4.3 KiB
Markdown
# User Module TODO
|
|
|
|
## ✅ Implemented (20/80)
|
|
|
|
### Authentication
|
|
|
|
- ✅ GET `/user/login` - Get login page configuration
|
|
- ✅ POST `/user/login` - User login
|
|
|
|
### OAuth & Third-Party Integration
|
|
|
|
- ✅ GET `/user/oauth/:provider/authorize` - Get OAuth authorization URL
|
|
- ✅ POST `/user/oauth/:provider/authorize/prepare` - Handle OAuth POST callback (Apple, WeChat)
|
|
- ✅ POST `/user/oauth/:provider/callback` - Handle OAuth GET callback (Google, GitHub)
|
|
|
|
### Team Management (15 endpoints)
|
|
|
|
#### Team CRUD (5 endpoints)
|
|
|
|
- ✅ GET `/user/teams` - Get user teams
|
|
- ✅ GET `/user/teams/:team_id` - Get user team details
|
|
- ✅ POST `/user/teams` - Create user team
|
|
- ✅ PUT `/user/teams/:team_id` - Update user team
|
|
- ✅ DELETE `/user/teams/:team_id` - Delete user team
|
|
|
|
#### Member Management (5 endpoints)
|
|
|
|
- ✅ GET `/user/teams/:team_id/members` - Get user team members
|
|
- ✅ GET `/user/teams/:team_id/members/:member_id` - Get user team member details
|
|
- ✅ POST `/user/teams/:team_id/members/direct` - Add member directly (for bots/system)
|
|
- ✅ PUT `/user/teams/:team_id/members/:member_id` - Update user team member
|
|
- ✅ DELETE `/user/teams/:team_id/members/:member_id` - Remove user team member
|
|
|
|
#### Invitation Management (5 endpoints)
|
|
|
|
- ✅ POST `/user/teams/:team_id/invitations` - Send team invitation
|
|
- ✅ GET `/user/teams/:team_id/invitations` - Get team invitations
|
|
- ✅ GET `/user/teams/:team_id/invitations/:invitation_id` - Get invitation details
|
|
- ✅ PUT `/user/teams/:team_id/invitations/:invitation_id/resend` - Resend invitation
|
|
- ✅ DELETE `/user/teams/:team_id/invitations/:invitation_id` - Cancel invitation
|
|
|
|
## ❌ TODO (60/80)
|
|
|
|
### Authentication
|
|
|
|
- ❌ POST `/user/register` - User registration
|
|
- ❌ POST `/user/logout` - User logout
|
|
|
|
### Profile Management
|
|
|
|
- ❌ GET `/user/profile` - Get user profile
|
|
- ❌ PUT `/user/profile` - Update user profile
|
|
|
|
### Account Security (13 endpoints)
|
|
|
|
- ❌ Password management (3 endpoints)
|
|
- ❌ Email management (5 endpoints)
|
|
- ❌ Mobile management (5 endpoints)
|
|
|
|
### Multi-Factor Authentication (12 endpoints)
|
|
|
|
- ❌ TOTP management (7 endpoints)
|
|
- ❌ SMS MFA management (5 endpoints)
|
|
|
|
### OAuth & Third-Party Integration
|
|
|
|
- ❌ GET `/user/oauth/providers` - Get linked OAuth providers
|
|
- ❌ DELETE `/user/oauth/:provider` - Unlink OAuth provider
|
|
- ❌ GET `/user/oauth/providers/available` - Get available OAuth providers
|
|
- ❌ POST `/user/oauth/:provider/connect` - Connect OAuth provider
|
|
|
|
### API Keys Management (6 endpoints)
|
|
|
|
- ❌ CRUD operations and regeneration for API keys
|
|
|
|
### Credits & Top-up (6 endpoints)
|
|
|
|
- ❌ Credits info, history, and top-up management
|
|
|
|
### Subscription Management (2 endpoints)
|
|
|
|
- ❌ Subscription info and updates
|
|
|
|
### Usage Statistics (2 endpoints)
|
|
|
|
- ❌ Usage statistics and history
|
|
|
|
### Billing & Invoices (2 endpoints)
|
|
|
|
- ❌ Billing history and invoice list
|
|
|
|
### Referral & Invitations (4 endpoints)
|
|
|
|
- ❌ Referral codes, statistics, history, commissions
|
|
|
|
### Invitation Response (3 endpoints)
|
|
|
|
- ❌ Cross-module invitation handling
|
|
|
|
### User Preferences (3 endpoints)
|
|
|
|
- ❌ User preference settings
|
|
|
|
### Privacy Settings (3 endpoints)
|
|
|
|
- ❌ Privacy settings
|
|
|
|
### User Management (Admin) (5 endpoints)
|
|
|
|
- ❌ User CRUD operations
|
|
|
|
## Progress Summary
|
|
|
|
- **Completion**: 25% (20/80)
|
|
- **Core Features**:
|
|
- ✅ Authentication and OAuth completed
|
|
- ✅ **Team Management completed** (15 endpoints)
|
|
- Full team CRUD operations with permission control
|
|
- Complete member management with role-based access
|
|
- Comprehensive invitation system with support for unregistered users
|
|
- Automatic member cleanup on team deletion
|
|
- Business ID-based operations for better API design
|
|
- **Next Steps**: Recommend implementing basic user management (register, logout, profile) next
|
|
|
|
## Recent Achievements
|
|
|
|
### Team Management System (v1.0) 🎉
|
|
|
|
- **Full Implementation**: All 15 team management endpoints are fully implemented and tested
|
|
- **Advanced Features**:
|
|
- Multi-invitation support for unregistered users
|
|
- Automatic owner membership creation
|
|
- Role-based permission system (owner/member access control)
|
|
- Business ID abstraction for better API design
|
|
- Comprehensive error handling and validation
|
|
- **Quality Assurance**:
|
|
- 100+ unit tests covering all scenarios
|
|
- Complete integration test suite
|
|
- Following testutils.go guidelines
|
|
- No regressions in existing functionality
|