package web import ( "net/http" ) type LoginPageData struct { PageDataBase ErrorMessage string } func (ws *WebServer) LoginHandler(w http.ResponseWriter, r *http.Request) { loginData := LoginPageData{} if r.Method == http.MethodPost { if err := r.ParseForm(); err != nil { loginData.ErrorMessage = "Failed to parse form data" } else { password := r.FormValue("password") if password != ws.adminPassword || ws.adminPassword == "" { loginData.ErrorMessage = "Invalid password" } else { sessionID := generateSessionID() if sessionID == "" { loginData.ErrorMessage = "Failed to generate session ID" } ws.sessions[sessionID] = "admin" http.SetCookie(w, &http.Cookie{ Name: "session_id", Value: sessionID, Path: "/", HttpOnly: true, }) http.Redirect(w, r, "/", http.StatusSeeOther) } } } ws.renderTemplate(w, r, "templates/login.html", &loginData) }