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 @@ + +