diff --git a/main.go b/main.go index 27ca2f1..f16e50a 100644 --- a/main.go +++ b/main.go @@ -55,7 +55,7 @@ func serveTemplate(w http.ResponseWriter, r *http.Request) { var scales = getMyDevs(userName) var last_metrics []OneMetric - if r.URL.Path == "/scales.html" { + if (r.URL.Path == "/scales.html") || (r.URL.Path == "/abos.html") { // wir holen noch die letzten Metriken for _, v := range scales { last_metric := getLastMetrics(v) diff --git a/scales.go b/scales.go index 0829622..6bc1d34 100644 --- a/scales.go +++ b/scales.go @@ -3,6 +3,7 @@ package main import ( "fmt" "log" + "regexp" "net/http" ) @@ -22,6 +23,12 @@ func save_scale_settingsHandler(response http.ResponseWriter, request *http.Requ // Query()["deveui"] will return an array of items, // we only want the single item. mydeveui := deveui[0] + + if (len(mydeveui) != 16) { + log.Println("specified 'deveui' has invalid length") + fmt.Fprintf(response, "{ \"rc\": 8, \"msg\": \"specified deveui has invalid length\" }") + return + } if !(Contains(getMyDevs(name),mydeveui)) { log.Println("specified 'deveui' does not belong to this user") @@ -39,6 +46,14 @@ func save_scale_settingsHandler(response http.ResponseWriter, request *http.Requ return } myalias := alias[0] + + // validate alias + match, _ := regexp.MatchString("^[a-zA-Z0-9 ]{1,16}$", myalias) + if !(match) { + log.Println("Url Param 'alias' is not valid") + fmt.Fprintf(response, "{ \"rc\": 9, \"msg\": \"alias is not valid\" }") + return + } alarmactive, ok3 := request.URL.Query()["alarmactive"] @@ -48,6 +63,12 @@ func save_scale_settingsHandler(response http.ResponseWriter, request *http.Requ return } myalarmactive := alarmactive[0] + + if !((myalarmactive == "0") || (myalarmactive == "1")) { + log.Println("Url Param 'alarmactive' is not valid") + fmt.Fprintf(response, "{ \"rc\": 10, \"msg\": \"alarmactive is not valid\" }") + return + } smsnumber, ok4 := request.URL.Query()["smsnumber"] @@ -57,6 +78,14 @@ func save_scale_settingsHandler(response http.ResponseWriter, request *http.Requ return } mysmsnumber := smsnumber[0] + + match1, _ := regexp.MatchString(`^\+[0-9]{11,11}$`, mysmsnumber) + if !(match1) { + log.Println("Url Param 'smsnumber' is not valid") + fmt.Fprintf(response, "{ \"rc\": 11, \"msg\": \"smsnumber is not valid, must be in in format +41791234567\" }") + return + } + var mydev Dev mydev.Deveui = mydeveui mydev.Alias = myalias diff --git a/snippets/abos.html b/snippets/abos.html new file mode 100644 index 0000000..0cc1b4d --- /dev/null +++ b/snippets/abos.html @@ -0,0 +1,31 @@ +{{define "body_content"}} +
Abos
+Hier können blablabla...
+