85 lines
2.0 KiB
Go
85 lines
2.0 KiB
Go
|
// Copyright 2024 Brian Newman. All rights reserved.
|
||
|
|
||
|
package handlers
|
||
|
|
||
|
import (
|
||
|
"database/sql"
|
||
|
"fmt"
|
||
|
"net/http"
|
||
|
"net/url"
|
||
|
"time"
|
||
|
|
||
|
"cdmnky.io/net/patreon-ui/local.pkg/src/response"
|
||
|
"cdmnky.io/net/patreon-ui/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)
|
||
|
}
|
||
|
|
||
|
})
|
||
|
}
|