diff --git a/main.go b/main.go index ae8fe06..92fd2dc 100644 --- a/main.go +++ b/main.go @@ -198,6 +198,9 @@ func logRequest(handler http.Handler) http.Handler { func checkLogin(w http.ResponseWriter, r *http.Request) *LoginStatus { var login_info *LoginInfo + //@FIXME check authentication header + + session, err := store.Get(r, SESSION_NAME) if err == nil { username, ok := session.Values["login_username"] @@ -364,6 +367,15 @@ type LoginFormData struct { ErrorMessage string } +func buildUserDN(username string) string { + user_dn := fmt.Sprintf("%s=%s,%s", config.UserNameAttr, username, config.UserBaseDN) + if strings.EqualFold(username, config.AdminAccount) { + user_dn = username + } + + return user_dn +} + func handleLogin(w http.ResponseWriter, r *http.Request) *LoginInfo { templateLogin := getTemplate("login.html") @@ -375,10 +387,7 @@ func handleLogin(w http.ResponseWriter, r *http.Request) *LoginInfo { username := strings.Join(r.Form["username"], "") password := strings.Join(r.Form["password"], "") - user_dn := fmt.Sprintf("%s=%s,%s", config.UserNameAttr, username, config.UserBaseDN) - if strings.EqualFold(username, config.AdminAccount) { - user_dn = username - } + user_dn := buildUserDN(username) l := ldapOpen(w) if l == nil {