mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-16 09:11:03 +08:00
feat: forgot account reset flow + frontend default model fix to GLM
- Add forgot account reset flow with wallet preservation - Update frontend default model references from DeepSeek to GLM - Add reset-account API endpoint - Add orphan record adoption for wallet/exchange preservation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,24 @@ func (s *AIModelStore) initDefaultData() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindOrphanClaw402 finds a claw402 model whose user_id no longer exists in the users table.
|
||||
// Used to recover wallets after account reset.
|
||||
func (s *AIModelStore) FindOrphanClaw402() (*AIModel, error) {
|
||||
var model AIModel
|
||||
err := s.db.Where("provider = ? AND api_key != '' AND user_id NOT IN (SELECT id FROM users)", "claw402").
|
||||
First(&model).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &model, nil
|
||||
}
|
||||
|
||||
// AdoptModel re-assigns an existing model to a new user.
|
||||
func (s *AIModelStore) AdoptModel(modelID, newUserID string) error {
|
||||
return s.db.Model(&AIModel{}).Where("id = ?", modelID).
|
||||
Update("user_id", newUserID).Error
|
||||
}
|
||||
|
||||
// List retrieves user's AI model list
|
||||
func (s *AIModelStore) List(userID string) ([]*AIModel, error) {
|
||||
var models []*AIModel
|
||||
|
||||
@@ -112,6 +112,11 @@ func (s *UserStore) UpdatePassword(userID, passwordHash string) error {
|
||||
}).Error
|
||||
}
|
||||
|
||||
// DeleteAll deletes all users (reset system to uninitialized state)
|
||||
func (s *UserStore) DeleteAll() error {
|
||||
return s.db.Session(&gorm.Session{AllowGlobalUpdate: true}).Delete(&User{}).Error
|
||||
}
|
||||
|
||||
// EnsureAdmin ensures admin user exists
|
||||
func (s *UserStore) EnsureAdmin() error {
|
||||
var count int64
|
||||
|
||||
Reference in New Issue
Block a user