aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2020-02-12 16:02:42 +0100
committerAlex Auvolat <alex@adnab.me>2020-02-12 16:02:42 +0100
commit721eda63f8734a93cc10c2c36a4c274d2142e66c (patch)
tree5b7063b90fdc0c29158eefc8de6e016c4c8c6014
parentb3d6854d82143ef62234a408ada01d4035c19b20 (diff)
downloadguichet-721eda63f8734a93cc10c2c36a4c274d2142e66c.tar.gz
guichet-721eda63f8734a93cc10c2c36a4c274d2142e66c.zip
Prettier message when wrong username or password on login
-rw-r--r--main.go17
-rw-r--r--templates/login.html6
2 files changed, 19 insertions, 4 deletions
diff --git a/main.go b/main.go
index da59552..0a8e2da 100644
--- a/main.go
+++ b/main.go
@@ -309,6 +309,8 @@ func handleLogout(w http.ResponseWriter, r *http.Request) {
type LoginFormData struct {
Username string
+ WrongUser bool
+ WrongPass bool
ErrorMessage string
}
@@ -335,10 +337,17 @@ func handleLogin(w http.ResponseWriter, r *http.Request) *LoginInfo {
err := l.Bind(user_dn, password)
if err != nil {
- templateLogin.Execute(w, LoginFormData{
- Username: username,
- ErrorMessage: err.Error(),
- })
+ data := &LoginFormData{
+ Username: username,
+ }
+ if ldap.IsErrorWithCode(err, ldap.LDAPResultInvalidCredentials) {
+ data.WrongPass = true
+ } else if ldap.IsErrorWithCode(err, ldap.LDAPResultNoSuchObject) {
+ data.WrongUser = true
+ } else {
+ data.ErrorMessage = err.Error()
+ }
+ templateLogin.Execute(w, data)
return nil
}
diff --git a/templates/login.html b/templates/login.html
index 72e6754..8f24b78 100644
--- a/templates/login.html
+++ b/templates/login.html
@@ -4,6 +4,12 @@
<h4>S'identifier</h4>
<form method="POST">
+ {{if .WrongUser}}
+ <div class="alert alert-danger">Nom d'utilisateur invalide.</div>
+ {{end}}
+ {{if .WrongPass}}
+ <div class="alert alert-danger">Mot de passe invalide.</div>
+ {{end}}
{{if .ErrorMessage}}
<div class="alert alert-danger">Impossible de se connecter.
<div style="font-size: 0.8em">{{ .ErrorMessage }}</div>