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", handleUser)
|
||||||
r.HandleFunc("/user/new", handleInviteNewAccount)
|
r.HandleFunc("/user/new", handleInviteNewAccount)
|
||||||
r.HandleFunc("/user/wait", handleUserWait)
|
r.HandleFunc("/user/wait", handleUserWait)
|
||||||
|
r.HandleFunc("/user/mail", handleUserMail)
|
||||||
|
|
||||||
r.HandleFunc("/picture/{name}", handleDownloadPicture)
|
r.HandleFunc("/picture/{name}", handleDownloadPicture)
|
||||||
|
|
||||||
|
|
57
view-user.go
57
view-user.go
|
@ -2,10 +2,13 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
// b64 "encoding/base64"
|
// b64 "encoding/base64"
|
||||||
// "fmt"
|
"fmt"
|
||||||
// "log"
|
// "log"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-ldap/ldap/v3"
|
||||||
// "github.com/gorilla/mux"
|
// "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) {
|
func handleUser(w http.ResponseWriter, r *http.Request) {
|
||||||
templateUser := getTemplate("user.html")
|
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)
|
// templateUser.Execute(w, data)
|
||||||
execTemplate(w, templateUser, data.Common, data.Login, *config, data)
|
execTemplate(w, templateUser, data.Common, data.Login, *config, data)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue