Handle multiple mail values
This commit is contained in:
parent
b60040113c
commit
ec6c77aa01
2 changed files with 57 additions and 1 deletions
|
@ -70,6 +70,7 @@ func makeGVRouter() (*mux.Router, error) {
|
|||
r.HandleFunc("/user", handleUser)
|
||||
r.HandleFunc("/user/new", handleInviteNewAccount)
|
||||
r.HandleFunc("/user/wait", handleUserWait)
|
||||
r.HandleFunc("/user/mail", handleUserMail)
|
||||
|
||||
r.HandleFunc("/picture/{name}", handleDownloadPicture)
|
||||
|
||||
|
|
57
view-user.go
57
view-user.go
|
@ -2,10 +2,13 @@ package main
|
|||
|
||||
import (
|
||||
// b64 "encoding/base64"
|
||||
// "fmt"
|
||||
"fmt"
|
||||
// "log"
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/go-ldap/ldap/v3"
|
||||
// "github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
|
@ -19,6 +22,56 @@ func handleUserWait(w http.ResponseWriter, r *http.Request) {
|
|||
})
|
||||
}
|
||||
|
||||
func handleUserMail(w http.ResponseWriter, r *http.Request) {
|
||||
login := checkLogin(w, r)
|
||||
if login == nil {
|
||||
http.Redirect(w, r, "/", http.StatusFound)
|
||||
return
|
||||
}
|
||||
email := r.FormValue("email")
|
||||
action := r.FormValue("add")
|
||||
index := r.FormValue("index")
|
||||
var err error
|
||||
if action == "Add" {
|
||||
// Add the new mail value to the entry
|
||||
modifyRequest := ldap.NewModifyRequest(login.Info.DN, nil)
|
||||
modifyRequest.Add("mail", []string{email})
|
||||
|
||||
err = login.conn.Modify(modifyRequest)
|
||||
if err != nil {
|
||||
http.Error(w, fmt.Sprintf("Error adding the email: %s", err), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
} else if action == "Delete" && index != "" {
|
||||
// Delete the specified mail value from the entry
|
||||
i := strings.Index(index, ":")
|
||||
if i > 0 {
|
||||
index = index[:i]
|
||||
}
|
||||
i = strings.Index(index, "/")
|
||||
if i > 0 {
|
||||
index = index[:i]
|
||||
}
|
||||
|
||||
modifyRequest := ldap.NewModifyRequest(login.Info.DN, nil)
|
||||
modifyRequest.Delete("mail", []string{email})
|
||||
|
||||
err = login.conn.Modify(modifyRequest)
|
||||
if err != nil {
|
||||
http.Error(w, fmt.Sprintf("Error deleting the email: %s", err), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
message := fmt.Sprintf("Mail value updated successfully to: %s", email)
|
||||
http.Redirect(w, r, "/user?message="+message, http.StatusSeeOther)
|
||||
|
||||
}
|
||||
|
||||
func toInteger(index string) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
func handleUser(w http.ResponseWriter, r *http.Request) {
|
||||
templateUser := getTemplate("user.html")
|
||||
|
||||
|
@ -123,6 +176,8 @@ func handleUser(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
}
|
||||
|
||||
log.Printf("handleUser : %v", data)
|
||||
|
||||
// templateUser.Execute(w, data)
|
||||
execTemplate(w, templateUser, data.Common, data.Login, *config, data)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue