1
0
mirror of https://github.com/raseels-repos/golang-saas-starter-kit.git synced 2025-08-08 22:36:41 +02:00

checkpoint

This commit is contained in:
Lee Brown
2019-08-03 16:35:57 -08:00
parent d4baa7a619
commit fad0801379
9 changed files with 148 additions and 25 deletions

View File

@ -15,6 +15,12 @@ const KeySession ctxKeySession = 1
// KeyAccessToken is used to store the access token for the user in their session.
const KeyAccessToken = "AccessToken"
// KeyUser is used to store the user in the session.
const KeyUser = "User"
// KeyAccount is used to store the account in the session.
const KeyAccount = "Account"
// ContextWithSession appends a universal translator to a context.
func ContextWithSession(ctx context.Context, session *sessions.Session) context.Context {
return context.WithValue(ctx, KeySession, session)
@ -39,7 +45,23 @@ func SessionAccessToken(session *sessions.Session) (string, bool) {
return "", false
}
func SessionWithAccessToken(session *sessions.Session, accessToken string) *sessions.Session {
func SessionUser(session *sessions.Session) ( interface{}, bool) {
if sv, ok := session.Values[KeyUser]; ok && sv != nil {
return sv, true
}
return nil, false
}
func SessionAccount(session *sessions.Session) (interface{}, bool) {
if sv, ok := session.Values[KeyAccount]; ok && sv != nil {
return sv, true
}
return nil, false
}
func SessionInit(session *sessions.Session, accessToken string, usr interface{}, acc interface{}) *sessions.Session {
if accessToken != "" {
session.Values[KeyAccessToken] = accessToken
@ -47,5 +69,27 @@ func SessionWithAccessToken(session *sessions.Session, accessToken string) *sess
delete(session.Values, KeyAccessToken)
}
if usr != nil {
session.Values[KeyUser] = usr
} else {
delete(session.Values, KeyUser)
}
if acc != nil {
session.Values[KeyAccount] = acc
} else {
delete(session.Values, KeyAccount)
}
return session
}
func SessionDestroy(session *sessions.Session) *sessions.Session {
delete(session.Values, KeyAccessToken)
delete(session.Values, KeyUser)
delete(session.Values, KeyAccount)
return session
}