diff --git a/web/context.go b/web/context.go index 26b7fe4..82ba8be 100644 --- a/web/context.go +++ b/web/context.go @@ -39,11 +39,10 @@ func headerMatch(req *http.Request, name string, value string) bool { func NewContext(req *http.Request) (*Context, error) { vars := mux.Vars(req) sess, err := sessionStore.Get(req, "inbucket") - ds := smtpd.DefaultFileDataStore() ctx := &Context{ Vars: vars, Session: sess, - DataStore: ds, + DataStore: DataStore, IsJson: headerMatch(req, "Accept", "application/json"), } if err != nil { diff --git a/web/server.go b/web/server.go index ca754d6..1bac524 100644 --- a/web/server.go +++ b/web/server.go @@ -10,6 +10,7 @@ import ( "github.com/gorilla/sessions" "github.com/jhillyerd/inbucket/config" "github.com/jhillyerd/inbucket/log" + "github.com/jhillyerd/inbucket/smtpd" "net" "net/http" "time" @@ -17,6 +18,7 @@ import ( type handler func(http.ResponseWriter, *http.Request, *Context) error +var DataStore smtpd.DataStore var Router *mux.Router var listener net.Listener var sessionStore sessions.Store @@ -55,6 +57,9 @@ func Start() { cfg := config.GetWebConfig() setupRoutes(cfg) + // NewContext() will use this DataStore for the web handlers + DataStore = smtpd.DefaultFileDataStore() + // TODO Make configurable sessionStore = sessions.NewCookieStore([]byte("something-very-secret"))