|
|
|
@ -124,6 +124,33 @@ func (s *server) roleHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
http.Redirect(w, r, "/users/"+userName, http.StatusFound) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *server) lockHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
response := s.newResponse("", w, r) |
|
|
|
|
if !response.IsAdmin { |
|
|
|
|
log.Println("Non admin attemp to change user locked") |
|
|
|
|
s.forbiddenHandler(w, r) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
vars := mux.Vars(r) |
|
|
|
|
userName := vars["name"] |
|
|
|
|
lockedStr := r.FormValue("locked") |
|
|
|
|
locked := ldap.LockedFromString(lockedStr) |
|
|
|
|
if locked == ldap.Unknown { |
|
|
|
|
log.Println("Not valid locked status '", lockedStr, "' for ", userName) |
|
|
|
|
s.errorHandler(w, r) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err := s.ldap.ChangeLocked(userName, locked) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Println("An error ocurred changing locked of '", userName, "' to", lockedStr, ": ", err) |
|
|
|
|
s.errorHandler(w, r) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
http.Redirect(w, r, "/users/"+userName, http.StatusFound) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *server) passwdadmHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
response := s.newResponse("", w, r) |
|
|
|
|
if !response.IsAdmin { |
|
|
|
|