You've already forked golang-saas-starter-kit
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:
@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user