Display friendly message on /reset if email is disabled

This commit is contained in:
Matt Baer 2023-10-03 11:15:33 -04:00
parent f404f7b928
commit c18987705c
2 changed files with 26 additions and 18 deletions

View File

@ -1278,18 +1278,20 @@ func viewResetPassword(app *App, w http.ResponseWriter, r *http.Request) error {
// Show reset password page // Show reset password page
d := struct { d := struct {
page.StaticPage page.StaticPage
Flashes []string Flashes []string
CSRFField template.HTML EmailEnabled bool
Token string CSRFField template.HTML
IsResetting bool Token string
IsSent bool IsResetting bool
IsSent bool
}{ }{
StaticPage: pageForReq(app, r), StaticPage: pageForReq(app, r),
Flashes: f, Flashes: f,
CSRFField: csrf.TemplateField(r), EmailEnabled: app.cfg.Email.Enabled(),
Token: token, CSRFField: csrf.TemplateField(r),
IsResetting: resetting, Token: token,
IsSent: r.FormValue("sent") == "1", IsResetting: resetting,
IsSent: r.FormValue("sent") == "1",
} }
err := pages["reset.tmpl"].ExecuteTemplate(w, "base", d) err := pages["reset.tmpl"].ExecuteTemplate(w, "base", d)
if err != nil { if err != nil {

View File

@ -14,6 +14,11 @@ label {
<div class="toosmall content-container clean"> <div class="toosmall content-container clean">
<h1>Reset your password</h1> <h1>Reset your password</h1>
{{ if not .EmailEnabled }}
<div class="alert info">
<p><strong>Email is not configured on this server!</strong> Please <a href="/contact">contact your admin</a> to reset your password.</p>
</div>
{{ else }}
{{if .Flashes}}<ul class="errors"> {{if .Flashes}}<ul class="errors">
{{range .Flashes}}<li class="urgent">{{.}}</li>{{end}} {{range .Flashes}}<li class="urgent">{{.}}</li>{{end}}
</ul>{{end}} </ul>{{end}}
@ -26,7 +31,7 @@ label {
</label> </label>
<input type="hidden" name="t" value="{{.Token}}" /> <input type="hidden" name="t" value="{{.Token}}" />
<input type="submit" id="btn-login" value="Reset Password" /> <input type="submit" id="btn-login" value="Reset Password" />
{{ .CSRFField }} {{ .CSRFField }}
</form> </form>
{{else if not .IsSent}} {{else if not .IsSent}}
<form action="/reset" method="post" onsubmit="disableSubmit()"> <form action="/reset" method="post" onsubmit="disableSubmit()">
@ -39,10 +44,11 @@ label {
</form> </form>
{{end}} {{end}}
<script type="text/javascript"> <script type="text/javascript">
var $btn = document.getElementById("btn-login"); var $btn = document.getElementById("btn-login");
function disableSubmit() { function disableSubmit() {
$btn.disabled = true; $btn.disabled = true;
} }
</script> </script>
{{ end }}
{{end}} {{end}}