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 {
if providerItem.Provider == nil {
if providerItem.Provider == nil || providerItem.Provider.Category != "Captcha" {
continue
}
if providerItem.Provider.Category == "Captcha" {
if providerItem.Rule == "Dynamic" {
user, err := GetUserByFields(organization, username)
if err != nil {
return false, err
}
failedSigninLimit := application.FailedSigninLimit
if failedSigninLimit == 0 {
failedSigninLimit = DefaultFailedSigninLimit
if user != nil {
failedSigninLimit, _, err := GetFailedSigninConfigByUser(user)
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 false, nil
}