diff --git a/internal/api/auth.go b/internal/api/auth.go index 5b42756..40bcc98 100644 --- a/internal/api/auth.go +++ b/internal/api/auth.go @@ -20,20 +20,7 @@ func Login(w http.ResponseWriter, r *http.Request) { return } - w.Header().Set("Content-Type", "application/json") - err := json.NewEncoder(w).Encode( - internal.Response{ - Message: "Successfully logged in", - HTTPResponse: 200, - }) - - if err != nil { - http.Error(w, "internal server error", http.StatusInternalServerError) - - return - } - - err = r.ParseForm() + err := r.ParseForm() if err != nil { http.Error(w, "Unable to parse request", http.StatusInternalServerError) @@ -91,7 +78,6 @@ func Login(w http.ResponseWriter, r *http.Request) { Name: "jwt", // Must be named "jwt" or else the token cannot be searched for by jwtauth.Verifier. Value: token, }) - w.Header().Set("Content-Type", "application/json") err = json.NewEncoder(w).Encode( internal.Response{ @@ -126,7 +112,6 @@ func Logout(w http.ResponseWriter, r *http.Request) { Message: "Successfully logged out", HTTPResponse: 200, }) - if err != nil { http.Error(w, "internal server error", http.StatusInternalServerError) diff --git a/internal/api/users.go b/internal/api/users.go index 9554534..4281808 100644 --- a/internal/api/users.go +++ b/internal/api/users.go @@ -87,6 +87,7 @@ func NewUser(w http.ResponseWriter, r *http.Request) { return } + http.Redirect(w, r, "/", http.StatusSeeOther) } diff --git a/internal/api/zone.go b/internal/api/zone.go index 7e8f289..8f6cbf1 100644 --- a/internal/api/zone.go +++ b/internal/api/zone.go @@ -69,17 +69,20 @@ func RecieveFile(w http.ResponseWriter, r *http.Request) { } db.Create( - &ZoneRequest{User: claims["username"].(string), + &ZoneRequest{ + User: claims["username"].(string), Zone: &Zone{ FileName: fmt.Sprintf("tmpfile-%s-%s", name[0], claims["username"].(string)), RawFileName: name[0], - }}) + }, + }) buf.Reset() } func ZoneFiles(w http.ResponseWriter, r *http.Request) { var result internal.ZoneRequest + _, claims, _ := jwtauth.FromContext(r.Context()) err := r.ParseForm() @@ -104,22 +107,26 @@ func ZoneFiles(w http.ResponseWriter, r *http.Request) { return } - db.Where("raw_file_name = ?", filename).First(&result) - log.Println(result.RawFileName) - if result.RawFileName == "" { + db.Where(ZoneRequest{ + Zone: &Zone{ + RawFileName: filename, + }, + User: claims["username"].(string), + }).First(&result) + + if result == (internal.ZoneRequest{}) { http.Error(w, "Internal server error", http.StatusInternalServerError) return } zoneFile := newZoneRequest(result.RawFileName, claims["username"].(string)) - log.Println(zoneFile.FileName) + if err := zoneFile.Parse(); err != nil { http.Error(w, "Unable to parse zonefile", http.StatusInternalServerError) return } - } func newZoneRequest(filename string, user string) *ZoneRequest { @@ -141,7 +148,7 @@ func newZoneRequest(filename string, user string) *ZoneRequest { // Parse will be used to parse zonefiles. func (zone *ZoneRequest) Parse() error { zp := dns.NewZoneParser(strings.NewReader(zone.Body), "", "") - log.Println(zone.Body) + for rr, ok := zp.Next(); ok; rr, ok = zp.Next() { log.Println(rr) }