Feat: add password for player
This commit is contained in:
		| @@ -37,7 +37,6 @@ func HandleNameCheck(w http.ResponseWriter, r *http.Request) { | ||||
| 		return | ||||
| 	} | ||||
| 	cleanName := utils.RemoveSpacesFromStr(username) | ||||
| 	// allNames := getAllNames() | ||||
| 	allNames, err := repo.PlayerListNames(r.Context()) | ||||
| 	if err != nil { | ||||
| 		abortWithError(w, err.Error()) | ||||
| @@ -74,10 +73,12 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) { | ||||
| 		abortWithError(w, msg) | ||||
| 		return | ||||
| 	} | ||||
| 	password := r.PostFormValue("password") | ||||
| 	var makeplayer bool | ||||
| 	roomID := r.PostFormValue("room_id") | ||||
| 	// make sure username does not exists | ||||
| 	cleanName := utils.RemoveSpacesFromStr(username) | ||||
| 	clearPass := utils.RemoveSpacesFromStr(password) | ||||
| 	// login user | ||||
| 	cookie, err := makeCookie(cleanName, r.RemoteAddr) | ||||
| 	if err != nil { | ||||
| @@ -85,15 +86,19 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) { | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	http.SetCookie(w, cookie) | ||||
| 	// check if that user was already in db | ||||
| 	// userstate, err := loadState(cleanName) | ||||
| 	userstate, err := repo.PlayerGetByName(r.Context(), cleanName) | ||||
| 	if err != nil || userstate == nil { | ||||
| 		log.Debug("making new player", "error", err, "state", userstate) | ||||
| 		userstate = models.InitPlayer(cleanName) | ||||
| 		makeplayer = true | ||||
| 	} | ||||
| 	if userstate.Password != clearPass { | ||||
| 		log.Error("wrong password", "username", cleanName, "password", clearPass) | ||||
| 		abortWithError(w, "wrong password") | ||||
| 		return | ||||
| 	} | ||||
| 	http.SetCookie(w, cookie) | ||||
| 	fi := &models.FullInfo{ | ||||
| 		State: userstate, | ||||
| 	} | ||||
| @@ -106,20 +111,12 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) { | ||||
| 			abortWithError(w, err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 		// room.PlayerList = append(room.PlayerList, fi.State.Username) | ||||
| 		// fi.Room = room | ||||
| 		fi.List = nil | ||||
| 		fi.State.RoomID = &room.ID | ||||
| 		if err := repo.PlayerSetRoomID(r.Context(), room.ID, fi.State.Username); err != nil { | ||||
| 			abortWithError(w, err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 		// repo.RoomUpdate() | ||||
| 		// save full info instead | ||||
| 		// if err := saveFullInfo(r.Context(), fi); err != nil { | ||||
| 		// 	abortWithError(w, err.Error()) | ||||
| 		// 	return | ||||
| 		// } | ||||
| 	} else { | ||||
| 		log.Debug("no room_id in login") | ||||
| 		// fi.List = listRooms(false) | ||||
| @@ -129,19 +126,15 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) { | ||||
| 			return | ||||
| 		} | ||||
| 		// save state to cache | ||||
| 		// if err := saveState(cleanName, userstate); err != nil { | ||||
| 		if makeplayer { | ||||
| 			userstate.Password = clearPass | ||||
| 			if err := repo.PlayerAdd(r.Context(), userstate); err != nil { | ||||
| 				// if err := saveFullInfo(r.Context(), fi); err != nil { | ||||
| 				log.Error("failed to save state", "error", err) | ||||
| 				abortWithError(w, err.Error()) | ||||
| 				return | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	// if err := tmpl.ExecuteTemplate(w, "base", fi); err != nil { | ||||
| 	// 	log.Error("failed to execute base template", "error", err) | ||||
| 	// } | ||||
| 	http.Redirect(w, r, "/", 302) | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder