9881b8a4e2
## Changes - Forces flashed error to render immediately when forgot password code is incorrect or has expired. - Adds a link back to the `forgot_password` page so that the user can restart the process (in the event that their link has expired)
67 lines
2.7 KiB
Go HTML Template
67 lines
2.7 KiB
Go HTML Template
{{template "base/head" .}}
|
|
<div role="main" aria-label="{{.Title}}" class="page-content user reset password">
|
|
<div class="ui middle very relaxed page grid">
|
|
<div class="column">
|
|
<form class="ui form ignore-dirty" action="{{.Link}}" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<input name="code" type="hidden" value="{{.Code}}">
|
|
<h2 class="ui top attached header">
|
|
{{.locale.Tr "auth.reset_password"}}
|
|
</h2>
|
|
<div class="ui attached segment">
|
|
{{template "base/alert" .}}
|
|
{{if .user_email}}
|
|
<div class="inline field">
|
|
<label for="user_name">{{.locale.Tr "email"}}</label>
|
|
<input id="user_name" type="text" value="{{.user_email}}" disabled>
|
|
</div>
|
|
{{end}}
|
|
{{if .IsResetForm}}
|
|
<div class="required inline field {{if .Err_Password}}error{{end}}">
|
|
<label for="password">{{.locale.Tr "settings.new_password"}}</label>
|
|
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="new-password" autofocus required>
|
|
</div>
|
|
{{if not .user_signed_in}}
|
|
<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}}
|
|
{{if .has_two_factor}}
|
|
<h4 class="ui dividing header">
|
|
{{.locale.Tr "twofa"}}
|
|
</h4>
|
|
<div class="ui warning visible message">{{.locale.Tr "settings.twofa_is_enrolled" | Str2html}}</div>
|
|
{{if .scratch_code}}
|
|
<div class="required inline field {{if .Err_Token}}error{{end}}">
|
|
<label for="token">{{.locale.Tr "auth.scratch_code"}}</label>
|
|
<input id="token" name="token" type="text" autocomplete="off" autofocus required>
|
|
</div>
|
|
<input type="hidden" name="scratch_code" value="true">
|
|
{{else}}
|
|
<div class="required inline field {{if .Err_Passcode}}error{{end}}">
|
|
<label for="passcode">{{.locale.Tr "passcode"}}</label>
|
|
<input id="passcode" name="passcode" type="number" autocomplete="off" autofocus required>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
<div class="divider"></div>
|
|
<div class="inline field">
|
|
<label></label>
|
|
<button class="ui primary button">{{.locale.Tr "auth.reset_password_helper"}}</button>
|
|
{{if and .has_two_factor (not .scratch_code)}}
|
|
<a href="{{.Link}}?code={{.Code}}&scratch_code=true">{{.locale.Tr "auth.use_scratch_code" | Str2html}}</a>
|
|
{{end}}
|
|
</div>
|
|
{{else}}
|
|
<p class="center">{{.locale.Tr "auth.invalid_code_forgot_password" (printf "%s/user/forgot_password" AppSubUrl) | Str2html}}</p>
|
|
{{end}}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{template "base/footer" .}}
|