@ -17,11 +17,8 @@ import (
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/eventsource"
"code.gitea.io/gitea/modules/eventsource"
"code.gitea.io/gitea/modules/hcaptcha"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/mcaptcha"
"code.gitea.io/gitea/modules/password"
"code.gitea.io/gitea/modules/password"
"code.gitea.io/gitea/modules/recaptcha"
"code.gitea.io/gitea/modules/session"
"code.gitea.io/gitea/modules/session"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/timeutil"
@ -163,6 +160,10 @@ func SignIn(ctx *context.Context) {
ctx . Data [ "PageIsLogin" ] = true
ctx . Data [ "PageIsLogin" ] = true
ctx . Data [ "EnableSSPI" ] = auth . IsSSPIEnabled ( )
ctx . Data [ "EnableSSPI" ] = auth . IsSSPIEnabled ( )
if setting . Service . EnableCaptcha && setting . Service . RequireCaptchaForLogin {
context . SetCaptchaData ( ctx )
}
ctx . HTML ( http . StatusOK , tplSignIn )
ctx . HTML ( http . StatusOK , tplSignIn )
}
}
@ -189,6 +190,16 @@ func SignInPost(ctx *context.Context) {
}
}
form := web . GetForm ( ctx ) . ( * forms . SignInForm )
form := web . GetForm ( ctx ) . ( * forms . SignInForm )
if setting . Service . EnableCaptcha && setting . Service . RequireCaptchaForLogin {
context . SetCaptchaData ( ctx )
context . VerifyCaptcha ( ctx , tplSignIn , form )
if ctx . Written ( ) {
return
}
}
u , source , err := auth_service . UserSignIn ( form . UserName , form . Password )
u , source , err := auth_service . UserSignIn ( form . UserName , form . Password )
if err != nil {
if err != nil {
if user_model . IsErrUserNotExist ( err ) || user_model . IsErrEmailAddressNotExist ( err ) {
if user_model . IsErrUserNotExist ( err ) || user_model . IsErrEmailAddressNotExist ( err ) {
@ -383,14 +394,7 @@ func SignUp(ctx *context.Context) {
ctx . Data [ "SignUpLink" ] = setting . AppSubURL + "/user/sign_up"
ctx . Data [ "SignUpLink" ] = setting . AppSubURL + "/user/sign_up"
ctx . Data [ "EnableCaptcha" ] = setting . Service . EnableCaptcha
context . SetCaptchaData ( ctx )
ctx . Data [ "RecaptchaURL" ] = setting . Service . RecaptchaURL
ctx . Data [ "Captcha" ] = context . GetImageCaptcha ( )
ctx . Data [ "CaptchaType" ] = setting . Service . CaptchaType
ctx . Data [ "RecaptchaSitekey" ] = setting . Service . RecaptchaSitekey
ctx . Data [ "HcaptchaSitekey" ] = setting . Service . HcaptchaSitekey
ctx . Data [ "McaptchaSitekey" ] = setting . Service . McaptchaSitekey
ctx . Data [ "McaptchaURL" ] = setting . Service . McaptchaURL
ctx . Data [ "PageIsSignUp" ] = true
ctx . Data [ "PageIsSignUp" ] = true
// Show Disabled Registration message if DisableRegistration or AllowOnlyExternalRegistration options are true
// Show Disabled Registration message if DisableRegistration or AllowOnlyExternalRegistration options are true
@ -406,14 +410,7 @@ func SignUpPost(ctx *context.Context) {
ctx . Data [ "SignUpLink" ] = setting . AppSubURL + "/user/sign_up"
ctx . Data [ "SignUpLink" ] = setting . AppSubURL + "/user/sign_up"
ctx . Data [ "EnableCaptcha" ] = setting . Service . EnableCaptcha
context . SetCaptchaData ( ctx )
ctx . Data [ "RecaptchaURL" ] = setting . Service . RecaptchaURL
ctx . Data [ "Captcha" ] = context . GetImageCaptcha ( )
ctx . Data [ "CaptchaType" ] = setting . Service . CaptchaType
ctx . Data [ "RecaptchaSitekey" ] = setting . Service . RecaptchaSitekey
ctx . Data [ "HcaptchaSitekey" ] = setting . Service . HcaptchaSitekey
ctx . Data [ "McaptchaSitekey" ] = setting . Service . McaptchaSitekey
ctx . Data [ "McaptchaURL" ] = setting . Service . McaptchaURL
ctx . Data [ "PageIsSignUp" ] = true
ctx . Data [ "PageIsSignUp" ] = true
// Permission denied if DisableRegistration or AllowOnlyExternalRegistration options are true
// Permission denied if DisableRegistration or AllowOnlyExternalRegistration options are true
@ -427,32 +424,10 @@ func SignUpPost(ctx *context.Context) {
return
return
}
}
if setting . Service . EnableCaptcha {
context . VerifyCaptcha ( ctx , tplSignUp , form )
var valid bool
if ctx . Written ( ) {
var err error
switch setting . Service . CaptchaType {
case setting . ImageCaptcha :
valid = context . GetImageCaptcha ( ) . VerifyReq ( ctx . Req )
case setting . ReCaptcha :
valid , err = recaptcha . Verify ( ctx , form . GRecaptchaResponse )
case setting . HCaptcha :
valid , err = hcaptcha . Verify ( ctx , form . HcaptchaResponse )
case setting . MCaptcha :
valid , err = mcaptcha . Verify ( ctx , form . McaptchaResponse )
default :
ctx . ServerError ( "Unknown Captcha Type" , fmt . Errorf ( "Unknown Captcha Type: %s" , setting . Service . CaptchaType ) )
return
}
if err != nil {
log . Debug ( "%s" , err . Error ( ) )
}
if ! valid {
ctx . Data [ "Err_Captcha" ] = true
ctx . RenderWithErr ( ctx . Tr ( "form.captcha_incorrect" ) , tplSignUp , & form )
return
return
}
}
}
if ! form . IsEmailDomainAllowed ( ) {
if ! form . IsEmailDomainAllowed ( ) {
ctx . RenderWithErr ( ctx . Tr ( "auth.email_domain_blacklisted" ) , tplSignUp , & form )
ctx . RenderWithErr ( ctx . Tr ( "auth.email_domain_blacklisted" ) , tplSignUp , & form )