package revel
// SessionFilter is a Revel Filter that retrieves and sets the session cookie.
// Within Revel, it is available as a Session attribute on Controller instances.
// The name of the Session cookie is set as CookiePrefix + "_SESSION".
import ()
var sessionLog = RevelLog.New("section", "session")
func SessionFilter(c *Controller, fc []Filter) {
CurrentSessionEngine.Decode(c)
sessionWasEmpty := c.Session.Empty()
// Make session vars available in templates as {{.session.xyz}}
c.ViewArgs["session"] = c.Session
c.ViewArgs["_controller"] = c
fc[0](c, fc[1:])
// If session is not empty or if session was not empty then
// pass it back to the session engine to be encoded
if !c.Session.Empty() || !sessionWasEmpty {
CurrentSessionEngine.Encode(c)
}
}