// Copyright 2024 Brian Newman. All rights reserved. package handlers import ( "database/sql" "fmt" "net/http" "net/url" "time" "cdmnky.dev/media/patreon-dl/gui/local.pkg/src/response" "cdmnky.dev/media/patreon-dl/gui/local.pkg/src/sitevars" "go.cdmnky.io/v2/net/router" "go.cdmnky.io/v2/net/session" ) // Unauthorized ... func Unauthorized(w http.ResponseWriter) { resp := response.New(fmt.Sprintf("%v", http.StatusUnauthorized), "Unauthorized", []byte{}) data, _ := resp.ToJSON() w.WriteHeader(http.StatusUnauthorized) w.Write(data) } // Public ... func Public(h router.Handle, db *sql.DB, s *session.Manager) router.Handle { return router.Handle(func(w http.ResponseWriter, r *http.Request, p url.Values) { t1 := time.Now() // session := s.SessionStart(w, r) // if session.Get("token") != nil { // token := session.Get("token").(string) // obj := user.New() // obj.Token = token // cnt, _ := obj.Db(db).Where(obj).Debug(false).Count() // if cnt == 0 { // s.SessionDestroy(w, r) // } // } h(w, r, p) t2 := time.Now() var realIP = r.Header.Get("X-Real-IP") if len(realIP) == 0 { realIP = r.RemoteAddr } var userAgent = r.Header.Get("User-Agent") var referrer = r.Header.Get("Referer") now := time.Now() mask := "2006/01/02 15:04:05" fmt.Printf("%s|%s|%s|%s|%s|%s|%v\n", now.Format(mask), realIP, r.Method, r.URL.String(), userAgent, referrer, t2.Sub(t1)) }) } // Secured ... func Secured(h router.Handle, db *sql.DB, s *session.Manager, sitevars *sitevars.Sitevars) router.Handle { return router.Handle(func(w http.ResponseWriter, r *http.Request, p url.Values) { authorized := false // session := s.SessionStart(w, r) // if session.Get("token") != nil { // token := session.Get("token").(string) // obj := user.New() // obj.Token = token // cnt, _ := obj.Db(db).Where(obj).Debug(false).Count() // if cnt == 1 { // authorized = true // } // } if authorized { h(w, r, p) } else { Unauthorized(w) } }) }