fix: bindEmailWithVerificationLogic 邮箱绑定后赠送逻辑错误
**问题**: 邮箱绑定后应该赠送 trial 的逻辑判断错误,导致以下场景无法赠送:
- EnableTrial=true, EnableTrialEmailWhitelist=false → 应该赠送但未赠送
**根本原因**: 第215行条件判断使用 OR 逻辑,要求白名单必须启用才处理
```go
if !rc.EnableTrial || !rc.EnableTrialEmailWhitelist {
return // ❌ 错误:关闭白名单时也返回,无法赠送
}
```
**修复**: 改为正确的逻辑
```go
if !rc.EnableTrial {
return // 关闭赠送时不处理
}
if rc.EnableTrialEmailWhitelist && !IsEmailDomainWhitelisted(...) {
return // 白名单启用但域名不匹配时不赠送
}
// 否则赠送
```
**影响场景**:
- 设备登录 → 绑定邮箱 → 应该赠送 trial
- 当 EnableTrialEmailWhitelist=false 时,应该赠送(修复前未赠送)
- 当 EnableTrialEmailWhitelist=true 且域名在白名单 → 赠送(修复前未赠送)
Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
parent
d586bbeabb
commit
19777df2ed
@ -209,13 +209,13 @@ func (l *BindEmailWithVerificationLogic) refreshBindSessionToken(userId int64) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// tryGrantTrialOnEmailBind grants trial subscription to the email user (family owner)
|
// tryGrantTrialOnEmailBind grants trial subscription to the email user (family owner)
|
||||||
// if EnableTrialEmailWhitelist is on and the email domain matches.
|
// if EnableTrial is on and (if whitelist is enabled, email domain must match).
|
||||||
func (l *BindEmailWithVerificationLogic) tryGrantTrialOnEmailBind(ownerUserId int64, email string) {
|
func (l *BindEmailWithVerificationLogic) tryGrantTrialOnEmailBind(ownerUserId int64, email string) {
|
||||||
rc := l.svcCtx.Config.Register
|
rc := l.svcCtx.Config.Register
|
||||||
if !rc.EnableTrial || !rc.EnableTrialEmailWhitelist {
|
if !rc.EnableTrial {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !auth.IsEmailDomainWhitelisted(email, rc.TrialEmailDomainWhitelist) {
|
if rc.EnableTrialEmailWhitelist && !auth.IsEmailDomainWhitelisted(email, rc.TrialEmailDomainWhitelist) {
|
||||||
l.Infow("email domain not in trial whitelist, skip",
|
l.Infow("email domain not in trial whitelist, skip",
|
||||||
logger.Field("email", email),
|
logger.Field("email", email),
|
||||||
logger.Field("owner_user_id", ownerUserId),
|
logger.Field("owner_user_id", ownerUserId),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user