68e934ab5d
Enable this to require captcha validation for user login. You also must enable `ENABLE_CAPTCHA`. Summary: - Consolidate CAPTCHA template - add CAPTCHA handle and context - add `REQUIRE_CAPTCHA_FOR_LOGIN` config and docs - Consolidate CAPTCHA set-up and verification code Partially resolved #6049 Signed-off-by: Xinyu Zhou <i@sourcehut.net> Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Andrew Thornton <art27@cantab.net>
78 lines
2.8 KiB
Handlebars
78 lines
2.8 KiB
Handlebars
{{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn)}}
|
|
{{template "base/alert" .}}
|
|
{{end}}
|
|
<h4 class="ui top attached header center">
|
|
{{if .LinkAccountMode}}
|
|
{{.locale.Tr "auth.oauth_signin_title"}}
|
|
{{else}}
|
|
{{.locale.Tr "auth.login_userpass"}}
|
|
{{end}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<form class="ui form" action="{{.SignInLink}}" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<div class="required inline field {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
|
|
<label for="user_name">{{.locale.Tr "home.uname_holder"}}</label>
|
|
<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
|
|
</div>
|
|
{{if or (not .DisablePassword) .LinkAccountMode}}
|
|
<div class="required inline field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
|
|
<label for="password">{{.locale.Tr "password"}}</label>
|
|
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="current-password" required>
|
|
</div>
|
|
{{end}}
|
|
{{if not .LinkAccountMode}}
|
|
<div class="inline field">
|
|
<label></label>
|
|
<div class="ui checkbox">
|
|
<label>{{.locale.Tr "auth.remember_me"}}</label>
|
|
<input name="remember" type="checkbox">
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{template "user/auth/captcha" .}}
|
|
|
|
<div class="inline field">
|
|
<label></label>
|
|
<button class="ui green button">
|
|
{{if .LinkAccountMode}}
|
|
{{.locale.Tr "auth.oauth_signin_submit"}}
|
|
{{else}}
|
|
{{.locale.Tr "sign_in"}}
|
|
{{end}}
|
|
</button>
|
|
<a href="{{AppSubUrl}}/user/forgot_password">{{.locale.Tr "auth.forgot_password"}}</a>
|
|
</div>
|
|
|
|
{{if .ShowRegistrationButton}}
|
|
<div class="inline field">
|
|
<label></label>
|
|
<a href="{{AppSubUrl}}/user/sign_up">{{.locale.Tr "auth.sign_up_now" | Str2html}}</a>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if and .OrderedOAuth2Names .OAuth2Providers}}
|
|
<div class="ui attached segment">
|
|
<div class="oauth2 center">
|
|
<div id="oauth2-login-loader" class="ui disabled centered loader"></div>
|
|
<div>
|
|
<div id="oauth2-login-navigator">
|
|
<p>{{.locale.Tr "sign_in_with"}}</p>
|
|
{{range $key := .OrderedOAuth2Names}}
|
|
{{$provider := index $.OAuth2Providers $key}}
|
|
<a href="{{AppSubUrl}}/user/oauth2/{{$key}}">
|
|
<img
|
|
alt="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}"
|
|
title="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}"
|
|
class="{{$provider.Name}} oauth-login-image"
|
|
src="{{AppSubUrl}}{{$provider.Image}}"
|
|
></a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</form>
|
|
</div>
|