feat: improve CheckToEnableCaptcha() logic

This commit is contained in:
Yang Luo
2025-07-03 02:32:07 +08:00
parent 1f2b0a3587
commit 3ccc0339c7

View File

@ -599,26 +599,30 @@ func CheckToEnableCaptcha(application *Application, organization, username strin
} }
for _, providerItem := range application.Providers { for _, providerItem := range application.Providers {
if providerItem.Provider == nil { if providerItem.Provider == nil || providerItem.Provider.Category != "Captcha" {
continue continue
} }
if providerItem.Provider.Category == "Captcha" {
if providerItem.Rule == "Dynamic" { if providerItem.Rule == "Dynamic" {
user, err := GetUserByFields(organization, username) user, err := GetUserByFields(organization, username)
if err != nil { if err != nil {
return false, err return false, err
} }
failedSigninLimit := application.FailedSigninLimit if user != nil {
if failedSigninLimit == 0 { failedSigninLimit, _, err := GetFailedSigninConfigByUser(user)
failedSigninLimit = DefaultFailedSigninLimit if err != nil {
return false, err
} }
return user != nil && user.SigninWrongTimes >= failedSigninLimit, nil return user.SigninWrongTimes >= failedSigninLimit, nil
} }
return false, nil
}
return providerItem.Rule == "Always", nil return providerItem.Rule == "Always", nil
} }
}
return false, nil return false, nil
} }