aboutsummaryrefslogtreecommitdiffstats
path: root/templates/user/auth/signin_inner.tmpl
blob: 5552363a0a05117c9fd6a5b38f0e38b85c1a0ae7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<div class="ui container fluid">
	{{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn)}}
	{{template "base/alert" .}}
	{{end}}
	<h4 class="ui top attached header center">
		{{if .LinkAccountMode}}
			{{ctx.Locale.Tr "auth.oauth_signin_title"}}
		{{else}}
			{{ctx.Locale.Tr "auth.login_userpass"}}
		{{end}}
	</h4>
	<div class="ui attached segment">
		{{if .EnablePasswordSignInForm}}
		<form class="ui form" action="{{.SignInLink}}" method="post">
			{{.CsrfTokenHtml}}
			<div class="required field {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
				<label for="user_name">{{ctx.Locale.Tr "home.uname_holder"}}</label>
				<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required tabindex="1">
			</div>
			{{if or (not .DisablePassword) .LinkAccountMode}}
			<div class="required field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
				<div class="tw-flex tw-mb-1">
					<label for="password" class="tw-flex-1">{{ctx.Locale.Tr "password"}}</label>
					<a href="{{AppSubUrl}}/user/forgot_password" tabindex="4">{{ctx.Locale.Tr "auth.forgot_password"}}</a>
				</div>
				<input id="password" name="password" type="password" value="{{.password}}" autocomplete="current-password" required tabindex="2">
			</div>
			{{end}}
			{{if not .LinkAccountMode}}
			<div class="inline field">
				<div class="ui checkbox">
					<label>{{ctx.Locale.Tr "auth.remember_me"}}</label>
					<input name="remember" type="checkbox" tabindex="5">
				</div>
			</div>
			{{end}}

			{{template "user/auth/captcha" .}}

			<div class="field">
				<button class="ui primary button tw-w-full" tabindex="3">
					{{if .LinkAccountMode}}
						{{ctx.Locale.Tr "auth.oauth_signin_submit"}}
					{{else}}
						{{ctx.Locale.Tr "sign_in"}}
					{{end}}
				</button>
			</div>
		</form>
		{{end}}{{/*if .EnablePasswordSignInForm*/}}
		{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
		{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
		{{if and $showOAuth2Methods .EnablePasswordSignInForm}}
			<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
		{{end}}
		{{if $showOAuth2Methods}}
			{{template "user/auth/oauth_container" .}}
		{{end}}
	</div>
</div>

{{if or .EnablePasskeyAuth .ShowRegistrationButton}}
<div class="ui container fluid">
	<div class="ui attached segment header top tw-max-w-2xl tw-m-auto tw-flex tw-flex-col tw-items-center">
		{{if .EnablePasskeyAuth}}
			{{template "user/auth/webauthn_error" .}}
			<a class="signin-passkey">{{ctx.Locale.Tr "auth.signin_passkey"}}</a>
		{{end}}

		{{if .ShowRegistrationButton}}
			<div class="field">
				<span>{{ctx.Locale.Tr "auth.need_account"}}</span>
				<a href="{{AppSubUrl}}/user/sign_up">{{ctx.Locale.Tr "auth.sign_up_now"}}</a>
			</div>
		{{end}}
	</div>
</div>
{{end}}