/** * Handles saving a user. */ func (t *User) save(response http.ResponseWriter, request *http.Request) { // Try and load a user with the Username. existingUsername := request.FormValue("idUsername") userDataStoreHelper, err := datastore.GetUserHelper() if err != nil { log.Println("DB Error:" + err.Error()) http.Error(response, err.Error(), 500) return } myuser := datastore.User{} if existingUsername != "" { myuser, err = userDataStoreHelper.GetUser(existingUsername) // Check for error when loading user. if err != nil { http.Error(response, err.Error(), 500) return } } // Set the values on the object. myuser.Username = request.FormValue("username") myuser.DisplayName = request.FormValue("name") myuser.SetShortDOB(request.FormValue("dob")) if request.FormValue("isAdmin") == "true" { myuser.IsAdmin = true } else { myuser.IsAdmin = false } err = userDataStoreHelper.SetUser(&myuser) // Check for error when saving user. if err != nil { // There was an error, so report that to the screen. http.Redirect(response, request, t.Base()+"?saveerror=true", http.StatusMovedPermanently) } else { // No error, so report a successful save to the screen and remove the previous version // if username has been edited. // If the new username is different to the existing username, delete the old // version before saving the new version. This prevents duplicates. if existingUsername != "" && myuser.Username != existingUsername { err = userDataStoreHelper.DeleteUser(existingUsername) } http.Redirect(response, request, t.Base()+"?savecomplete=true", http.StatusMovedPermanently) } }
/* * Create a User in the Database with the username specified in the URL and the password "administrator". */ func (t *Developer) createadmin(response http.ResponseWriter, request *http.Request) { myuser := datastore.User{} myuser.Username = mux.Vars(request)["username"] myuser.Password = "******" myuser.IsAdmin = true helper, err := datastore.GetUserHelper() if err != nil { log.Println("DB Error:" + err.Error()) http.Error(response, err.Error(), 500) return } err = helper.SetUser(&myuser) if err != nil { log.Println("Error:" + err.Error()) http.Error(response, err.Error(), 500) return } return }