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