package skykit
import "net/http"
type AccessCheck func(*Application, http.ResponseWriter, *http.Request) bool
type View struct {
app *Application
name string
check AccessCheck
}
func (app *Application) Serve(name string, check AccessCheck) *View {
return &View{app: app, name: name, check: check}
}
func (v *View) Render(w http.ResponseWriter, r *http.Request, data any) {
v.app.Render(w, r, v.name, data)
}
func (v *View) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if v.check == nil {
v.app.Render(w, r, v.name, nil)
return
}
if !v.check(v.app, w, r) {
w.Write([]byte("Access Denied"))
return
}
v.app.Render(w, r, v.name, nil)
}