diff --git a/backend/internal/modules/adminmgr/repository.go b/backend/internal/modules/adminmgr/repository.go index 907a599..0c22a7d 100644 --- a/backend/internal/modules/adminmgr/repository.go +++ b/backend/internal/modules/adminmgr/repository.go @@ -77,13 +77,14 @@ func (r *Repository) Create(ctx context.Context, req CreateAdminRequest) (*Admin if err != nil { return nil, err } + // 仅部署 bootstrap 首个超级管理员会强制改密;后台新建账号不强制。 admin := model.AdminUser{ Username: req.Username, PasswordHash: string(hash), Nickname: req.Nickname, Status: "active", TokenVersion: 1, - PasswordMustChange: true, + PasswordMustChange: false, } if err := r.db.WithContext(ctx).Create(&admin).Error; err != nil { return nil, err @@ -201,10 +202,11 @@ func (r *Repository) ResetPassword(ctx context.Context, id uint64, newPwd string if err != nil { return err } + // 管理员重置密码后直接可用,不再二次强制改密(强制改密仅用于 bootstrap 初始账号)。 return r.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error { if err := tx.Model(&admin).Updates(map[string]any{ "password_hash": string(hash), - "password_must_change": true, + "password_must_change": false, }).Error; err != nil { return err }