Uniformize templates

This commit is contained in:
Alex 2020-02-09 19:56:01 +01:00
parent 1322220439
commit f929ca7297
6 changed files with 58 additions and 51 deletions

View file

@ -1,9 +1,9 @@
package main package main
import ( import (
"fmt"
"html/template" "html/template"
"net/http" "net/http"
"fmt"
"sort" "sort"
"github.com/go-ldap/ldap/v3" "github.com/go-ldap/ldap/v3"
@ -31,9 +31,9 @@ func checkAdminLogin(w http.ResponseWriter, r *http.Request) *LoginStatus {
} }
type AdminUsersTplData struct { type AdminUsersTplData struct {
Login *LoginStatus Login *LoginStatus
UserNameAttr string UserNameAttr string
Users []*ldap.Entry Users []*ldap.Entry
} }
func handleAdminUsers(w http.ResponseWriter, r *http.Request) { func handleAdminUsers(w http.ResponseWriter, r *http.Request) {
@ -58,9 +58,9 @@ func handleAdminUsers(w http.ResponseWriter, r *http.Request) {
} }
data := &AdminUsersTplData{ data := &AdminUsersTplData{
Login: login, Login: login,
UserNameAttr: config.UserNameAttr, UserNameAttr: config.UserNameAttr,
Users: sr.Entries, Users: sr.Entries,
} }
sort.Sort(data) sort.Sort(data)

View file

@ -63,10 +63,11 @@ func handleProfile(w http.ResponseWriter, r *http.Request) {
} }
type PasswdTplData struct { type PasswdTplData struct {
Status *LoginStatus Status *LoginStatus
ErrorMessage string ErrorMessage string
NoMatchError bool TooShortError bool
Success bool NoMatchError bool
Success bool
} }
func handlePasswd(w http.ResponseWriter, r *http.Request) { func handlePasswd(w http.ResponseWriter, r *http.Request) {
@ -89,7 +90,9 @@ func handlePasswd(w http.ResponseWriter, r *http.Request) {
password := strings.Join(r.Form["password"], "") password := strings.Join(r.Form["password"], "")
password2 := strings.Join(r.Form["password2"], "") password2 := strings.Join(r.Form["password2"], "")
if password2 != password { if len(password) < 8 {
data.TooShortError = true
} else if password2 != password {
data.NoMatchError = true data.NoMatchError = true
} else { } else {
modify_request := ldap.NewModifyRequest(login.Info.DN, nil) modify_request := ldap.NewModifyRequest(login.Info.DN, nil)

View file

@ -1,7 +1,9 @@
{{define "title"}}Liste des utilisateurs |{{end}} {{define "title"}}Liste des utilisateurs |{{end}}
{{define "body"}} {{define "body"}}
<div class="d-flex"> <div class="d-flex">
<h4>Liste des utilisateurs</h4>
<a class="ml-auto btn btn-info" href="/">Retour</a> <a class="ml-auto btn btn-info" href="/">Retour</a>
</div> </div>

View file

@ -1,7 +1,7 @@
{{define "title"}}{{end}} {{define "title"}}{{end}}
{{define "body"}} {{define "body"}}
<div class="alert alert-success"> <div class="alert alert-info">
Bienvenue, <strong>{{ .Login.UserEntry.GetAttributeValue "givenname" }}</strong> ! Bienvenue, <strong>{{ .Login.UserEntry.GetAttributeValue "givenname" }}</strong> !
</div> </div>
<div class="d-flex"> <div class="d-flex">

View file

@ -1,24 +1,31 @@
{{define "title"}}Mot de passe |{{end}} {{define "title"}}Mot de passe |{{end}}
{{define "body"}} {{define "body"}}
<h4>Modifier mon mot de passe</h4> <div class="d-flex">
<h4>Modifier mon mot de passe</h4>
<a class="ml-auto btn btn-info" href="/">Retour</a>
</div>
{{if .ErrorMessage}} {{if .ErrorMessage}}
<div class="alert alert-danger">Impossible d'effectuer la modification. <div class="alert alert-danger mt-4">Impossible d'effectuer la modification.
<div style="font-size: 0.8em">{{ .ErrorMessage }}</div> <div style="font-size: 0.8em">{{ .ErrorMessage }}</div>
</div> </div>
{{end}} {{end}}
{{if .Success}} {{if .Success}}
<div class="alert alert-success"> <div class="alert alert-success mt-4">
Nouveau mot de passe enregistré. Nouveau mot de passe enregistré.
</div> </div>
<a class="btn btn-info" href="/">Retour</a>
{{else}} {{else}}
<form method="POST"> <form method="POST" class="mt-4">
<div class="form-group"> <div class="form-group">
<label for="password">Nouveau mot de passe :</label> <label for="password">Nouveau mot de passe :</label>
<input type="password" id="password" name="password" class="form-control" /> <input type="password" id="password" name="password" class="form-control" />
</div> </div>
{{if .TooShortError}}
<div class="alert alert-warning">
Le mot de passe choisi est trop court (minimum 8 caractères).
</div>
{{end}}
<div class="form-group"> <div class="form-group">
<label for="password2">Répéter le mot de passe :</label> <label for="password2">Répéter le mot de passe :</label>
<input type="password" id="password2" name="password2" class="form-control" /> <input type="password" id="password2" name="password2" class="form-control" />
@ -28,10 +35,7 @@
Les deux mots de passe entrés ne correspondent pas. Les deux mots de passe entrés ne correspondent pas.
</div> </div>
{{end}} {{end}}
<div class="d-flex"> <button type="submit" class="btn btn-primary">Changer de mot de passe</button>
<button type="submit" class="btn btn-primary">Changer de mot de passe</button>
<a class="ml-auto btn btn-danger" href="/">Annuler</a>
</div>
</form> </form>
{{end}} {{end}}
{{end}} {{end}}

View file

@ -1,44 +1,42 @@
{{define "title"}}Profile |{{end}} {{define "title"}}Profile |{{end}}
{{define "body"}} {{define "body"}}
<h4>Modifier mon profil</h4> <div class="d-flex">
<h4>Modifier mon profil</h4>
<a class="ml-auto btn btn-info" href="/">Retour</a>
</div>
{{if .ErrorMessage}} {{if .ErrorMessage}}
<div class="alert alert-danger">Impossible d'effectuer la modification. <div class="alert alert-danger mt-4">Impossible d'effectuer la modification.
<div style="font-size: 0.8em">{{ .ErrorMessage }}</div> <div style="font-size: 0.8em">{{ .ErrorMessage }}</div>
</div> </div>
{{end}} {{end}}
{{if .Success}} {{if .Success}}
<div class="alert alert-success"> <div class="alert alert-success mt-4">
Profil enregistré. Profil enregistré.
</div> </div>
<a class="btn btn-info" href="/">Retour</a>
{{else}}
<form method="POST">
<div class="form-group">
<label>Nom d'utilisateur:</label>
<input type="text" disabled="true" class="form-control" value="{{ .Status.Info.Username }}" />
</div>
<div class="form-group">
<label for="mail">Adresse e-mail:</label>
<input type="text" id="mail" name="mail" class="form-control" value="{{ .Mail }}" />
</div>
<div class="form-group">
<label for="display_name">Nom complet:</label>
<input type="text" id="display_name" name="display_name" class="form-control" value="{{ .DisplayName }}" />
</div>
<div class="form-group">
<label for="given_name">Prénom:</label>
<input type="text" id="given_name" name="given_name" class="form-control" value="{{ .GivenName }}" />
</div>
<div class="form-group">
<label for="surname">Nom de famille:</label>
<input type="text" id="surname" name="surname" class="form-control" value="{{ .Surname }}" />
</div>
<div class="d-flex">
<button type="submit" class="btn btn-primary">Enregistrer les modifications</button>
<a class="ml-auto btn btn-danger" href="/">Annuler</a>
</div>
</form>
{{end}} {{end}}
<form method="POST" class="mt-4">
<div class="form-group">
<label>Nom d'utilisateur:</label>
<input type="text" disabled="true" class="form-control" value="{{ .Status.Info.Username }}" />
</div>
<div class="form-group">
<label for="mail">Adresse e-mail:</label>
<input type="text" id="mail" name="mail" class="form-control" value="{{ .Mail }}" />
</div>
<div class="form-group">
<label for="display_name">Nom complet:</label>
<input type="text" id="display_name" name="display_name" class="form-control" value="{{ .DisplayName }}" />
</div>
<div class="form-group">
<label for="given_name">Prénom:</label>
<input type="text" id="given_name" name="given_name" class="form-control" value="{{ .GivenName }}" />
</div>
<div class="form-group">
<label for="surname">Nom de famille:</label>
<input type="text" id="surname" name="surname" class="form-control" value="{{ .Surname }}" />
</div>
<button type="submit" class="btn btn-primary">Enregistrer les modifications</button>
</form>
{{end}} {{end}}