package api import "net/http" // WrapInAuthHandler wraps a simple http.HandlerFunc into a handler that // exposes the required API permissions for this handler. func WrapInAuthHandler(fn http.HandlerFunc, read, write Permission) http.Handler { return &wrappedAuthenticatedHandler{ HandlerFunc: fn, read: read, write: write, } } type wrappedAuthenticatedHandler struct { http.HandlerFunc read Permission write Permission } // ReadPermission returns the read permission for the handler. func (wah *wrappedAuthenticatedHandler) ReadPermission(r *http.Request) Permission { return wah.read } // WritePermission returns the write permission for the handler. func (wah *wrappedAuthenticatedHandler) WritePermission(r *http.Request) Permission { return wah.write }