mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-30 13:56:09 +01:00
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)
68 lines
2.7 KiB
Handlebars
68 lines
2.7 KiB
Handlebars
{{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" .}}
|