Monorepo for Tangled
tangled.org
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}