func UserInformationGET(w http.ResponseWriter, r *http.Request) { // Get session sess := session.Instance(r) user_id := uint64(sess.Values["id"].(uint32)) demo, err := model.DemographicByUserId(user_id) if err != nil && err != sql.ErrNoRows { log.Println(err) } ethnicity, err := model.EthnicityByUserId(user_id) if err != nil && err != sql.ErrNoRows { log.Println(err) } e := make(map[string]int) for i := 0; i <= 9; i++ { ee := fmt.Sprintf("%v", i) e["E"+ee] = 0 for j := 0; j < len(ethnicity); j++ { if int(ethnicity[j].Type_id) == i { e["E"+ee] = 1 } } } // Display the view v := view.New(r) v.Name = "user_info" //v.Vars["token"] = csrfbanana.Token(w, r, sess) v.Vars["first_name"] = sess.Values["first_name"] v.Vars["demographic"] = demo v.Vars["ethnicity"] = e v.Render(w) }
func InitialPhotoGET(w http.ResponseWriter, r *http.Request) { // Get session sess := session.Instance(r) user_id := uint64(sess.Values["id"].(uint32)) demo, err := model.DemographicByUserId(user_id) if err != sql.ErrNoRows { //log.Println(err) } // Force the user to enter in demographic information if len(demo.Gender) < 1 { UserInformationGET(w, r) return } // If the user has no photos, show this page // If the user has only unverified photos, show the waiting screen // Get the user photos photos, err := model.PhotosByUserId(uint64(sess.Values["id"].(uint32))) if err != nil { log.Println(err) } verified_private := false unverified_private := false //rejected_private := false any_private := false for _, v := range photos { if v.Initial == 1 { if v.Status_id == 1 { verified_private = true } else if v.Status_id == 2 { unverified_private = true } else if v.Status_id == 3 { //rejected_private = true } any_private = true } } // Redirect to profile to handle caess where all private photos are rejected if len(photos) < 1 || verified_private || !any_private { // Get the user verification code token_info, err := model.UserTokenByUserId(user_id) if err == sql.ErrNoRows { token_info.Token = random.Generate(6) token_info.User_id = uint32(user_id) err = model.UserTokenCreate(user_id, token_info.Token) } else if err != nil { log.Println(err) Error500(w, r) return } // Display the view v := view.New(r) v.Name = "user_step1" v.Vars["user_token"] = token_info.Token v.Vars["first_name"] = sess.Values["first_name"] v.Render(w) } else if unverified_private { http.Redirect(w, r, "/profile", http.StatusFound) } else { //Error404(w, r) http.Redirect(w, r, "/profile", http.StatusFound) } }