github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/routers/api/request/context.go (about) 1 package request 2 3 import ( 4 "github.com/covergates/covergates/core" 5 "github.com/gin-gonic/gin" 6 log "github.com/sirupsen/logrus" 7 ) 8 9 const ( 10 keyUser = "user" 11 ) 12 13 // WithUser context 14 func WithUser(c *gin.Context, user *core.User) { 15 c.Set(keyUser, user) 16 } 17 18 // UserFrom context 19 func UserFrom(c *gin.Context) (*core.User, bool) { 20 data, ok := c.Get(keyUser) 21 if !ok { 22 return nil, false 23 } 24 user, ok := data.(*core.User) 25 if !ok { 26 return nil, false 27 } 28 return user, true 29 } 30 31 // MustGetUserFrom current context, otherwise panic 32 func MustGetUserFrom(c *gin.Context) *core.User { 33 data := c.MustGet(keyUser) 34 user, ok := data.(*core.User) 35 if !ok { 36 log.Panic("user not found in current context") 37 } 38 return user 39 }