enhance password reset

This commit is contained in:
Joerg Lehmann 2020-04-13 10:04:56 +02:00
parent 868fdf8fb7
commit 4b5de36111
4 changed files with 32 additions and 8 deletions

View File

@ -83,7 +83,7 @@ func loginHandler(response http.ResponseWriter, request *http.Request) {
func resetPasswordHandler(response http.ResponseWriter, request *http.Request) {
name := request.FormValue("email")
pass := request.FormValue("password")
redirectTarget := "/"
redirectTarget := "/wait_for_password_confirmation.html"
logit(fmt.Sprintf("resetPasswordHandler: request for User %s", name))
if name != "" && pass != "" {
if checkUserAvailable(name) {
@ -122,6 +122,9 @@ func logoutHandler(response http.ResponseWriter, request *http.Request) {
func confirmHandler(response http.ResponseWriter, request *http.Request) {
confirm_id := request.URL.Query().Get("id")
logit(fmt.Sprintf("Confirm ID: %s\n", confirm_id))
confirmUser(confirm_id)
http.Redirect(response, request, "/", 302)
if confirmUser(confirm_id) {
http.Redirect(response, request, "/password_changed.html", 302)
} else {
http.Redirect(response, request, "/", 302)
}
}

View File

@ -361,28 +361,30 @@ func updateLoginTime(username string) {
}
}
func confirmUser(confirm_id string) {
func confirmUser(confirm_id string) bool {
conn := globalPool.Get()
defer conn.Close()
u, err := redis.String(conn.Do("GET", confirmPrefix+confirm_id))
if err != nil {
logit("confirmUser: Error with searching confirm_id: " + confirm_id)
return
return false
}
new_password, err := redis.String(conn.Do("HGET", userPrefix+u, "new_password"))
if err != nil {
logit("confirmUser: Error with getting new_password: " + u)
return
return false
}
_, err = conn.Do("HMSET", userPrefix+u, "confirm_id", "", "password", new_password)
if err != nil {
logit("confirmUser: Error updateing User: " + u)
return
return false
}
_, err = conn.Do("DEL", confirmPrefix+confirm_id)
if err != nil {
logit("confirmUser: Error deleting confirm_id: " + confirm_id)
return
return false
}
return true
}

View File

@ -0,0 +1,9 @@
{{define "body_content"}}
{{ if ne .UserName "" }}
Sie sind bereits eingeloggt!
{{ else }}
<div class="notification is-info">
Passwort wurde erfolgreich ge&auml;ndert!
</div>
{{ end }}
{{end}}

View File

@ -0,0 +1,10 @@
{{define "body_content"}}
{{ if ne .UserName "" }}
Sie sind bereits eingeloggt!
{{ else }}
<p class="title is-4">Passwort zur&uuml;cksetzen - warte auf Best&auml;tigung</p>
<div class="notification is-info">
<p>Bitte checken Sie Ihre Mailbox. Das neue Passwort wird erst g&uuml;ltig, wenn Sie die Best&auml;tigung durchgef&uuml;hrt haben.</p>
</div>
{{end}}
{{end}}