Monorepo for Tangled tangled.org
at sl/shared-stacks 27 lines 564 B view raw
1package session 2 3import ( 4 "context" 5 6 "tangled.org/core/appview/oauth" 7) 8 9type ctxKey struct{} 10 11func IntoContext(ctx context.Context, sess Session) context.Context { 12 return context.WithValue(ctx, ctxKey{}, &sess) 13} 14 15func FromContext(ctx context.Context) (*Session, bool) { 16 sess, ok := ctx.Value(ctxKey{}).(*Session) 17 return sess, ok 18} 19 20// UserFromContext returns optional MultiAccountUser from context. 21func UserFromContext(ctx context.Context) *oauth.MultiAccountUser { 22 sess, ok := ctx.Value(ctxKey{}).(*Session) 23 if !ok { 24 return nil 25 } 26 return sess.User 27}