From e53631a65b13aeac1862cd0186ac0dbff4280b8f Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Fri, 31 Jul 2026 12:45:43 -0700 Subject: [PATCH] add login page to webserver --- main/main.go | 2 +- webserver/login_page.go | 27 +++++++++++++++++++++ webserver/pages/login_page.html | 43 +++++++++++++++++++++++++++++++++ webserver/webserver.go | 7 ++++++ 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 webserver/login_page.go create mode 100644 webserver/pages/login_page.html diff --git a/main/main.go b/main/main.go index b931702..a766561 100644 --- a/main/main.go +++ b/main/main.go @@ -16,7 +16,7 @@ func main() { read_config() init_dav_client() - webserver.ServeWebpage("/login", LoginHandler) + webserver.ServeLoginPage("/login") webserver.ServeWebserver() // calDavData := get_caldav_data(serverConfig.Username, serverConfig.Password) diff --git a/webserver/login_page.go b/webserver/login_page.go new file mode 100644 index 0000000..138b4e7 --- /dev/null +++ b/webserver/login_page.go @@ -0,0 +1,27 @@ +package webserver + +import ( + "net/http" + "strings" + "text/template" +) + +type LoginPageData struct { + IsHiddenClassList string +} + +func loginHandler(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/html; charset=utf-8") + tmpl := template.Must(template.ParseFiles("webserver/pages/login_page.html")) + if r.Method == http.MethodGet { + tmpl.Execute(w, LoginPageData{IsHiddenClassList: "hidden"}) + return + } + + if r.Method == http.MethodPost { + username := r.FormValue("username") + if strings.Contains(username, "/") { + tmpl.Execute(w, LoginPageData{IsHiddenClassList: ""}) + } + } +} diff --git a/webserver/pages/login_page.html b/webserver/pages/login_page.html new file mode 100644 index 0000000..28b15dd --- /dev/null +++ b/webserver/pages/login_page.html @@ -0,0 +1,43 @@ + +Astral Tech - Login + + + + + + + +logo +
+
+ Welcome to Astral Tech, Please Sign in to your account below +
+ +
+ ⚠️ Invalid username or password. + +
+ +
+
+ +
+ +
+
+
+ + +
+
+ +
+ + + diff --git a/webserver/webserver.go b/webserver/webserver.go index 16ce9dd..657e296 100644 --- a/webserver/webserver.go +++ b/webserver/webserver.go @@ -5,8 +5,15 @@ import ( "net/http" ) +var routes []string + +func ServeLoginPage(route string) { + ServeWebpage(route, loginHandler) +} + func ServeWebpage(url string, handler func(http.ResponseWriter, *http.Request)) { http.HandleFunc(url, handler) + routes = append(routes, url) } func ServeWebserver() {