3
0
corteza/auth/request/session.go
2021-03-07 18:58:16 +01:00

104 lines
2.5 KiB
Go

package request
import (
"github.com/cortezaproject/corteza-server/system/types"
"github.com/gorilla/sessions"
"net/url"
)
const (
keyPermanent = "permanent"
keyOriginalSession = "originalSession"
keyAuthUser = "authUser"
keyRoles = "roles"
keyOAuth2AuthParams = "oauth2AuthParams"
keyOAuth2Client = "oauth2ClientID"
keyOAuth2ClientAuthorized = "oauth2ClientAuthorized"
)
// GetUser is wrapper to get value from session
func GetAuthUser(ses *sessions.Session) *authUser {
val, has := ses.Values[keyAuthUser]
if !has {
return nil
}
return val.(*authUser)
}
// GetRoleMemberships is wrapper to get value from session
func GetRoleMemberships(ses *sessions.Session) []uint64 {
val, has := ses.Values[keyRoles]
if !has {
return nil
}
return val.([]uint64)
}
// SetRoleMemberships is a session value setting wrapper for RoleMemberships
func SetRoleMemberships(ses *sessions.Session, val []uint64) {
if val != nil {
ses.Values[keyRoles] = val
} else {
delete(ses.Values, keyRoles)
}
}
// GetOAuth2AuthParams is wrapper to get value from session
func GetOAuth2AuthParams(ses *sessions.Session) url.Values {
val, has := ses.Values[keyOAuth2AuthParams]
if !has {
return nil
}
return val.(url.Values)
}
// SetOauth2AuthParams is a session value setting wrapper for Oauth2AuthParams
func SetOauth2AuthParams(ses *sessions.Session, val url.Values) {
if val != nil {
ses.Values[keyOAuth2AuthParams] = val
} else {
delete(ses.Values, keyOAuth2AuthParams)
}
}
// GetOauth2Client is wrapper to get value from session
func GetOauth2Client(ses *sessions.Session) *types.AuthClient {
val, has := ses.Values[keyOAuth2Client]
if !has {
return nil
}
return val.(*types.AuthClient)
}
// SetOauth2Client is a session value setting wrapper for Oauth2Client
func SetOauth2Client(ses *sessions.Session, val *types.AuthClient) {
if val != nil {
ses.Values[keyOAuth2Client] = val
} else {
delete(ses.Values, keyOAuth2Client)
}
}
// IsOauth2ClientAuthorized is wrapper to get value from session
func IsOauth2ClientAuthorized(ses *sessions.Session) bool {
val, has := ses.Values[keyOAuth2ClientAuthorized]
if !has {
return false
}
return val.(bool)
}
// SetOauth2ClientAuthorized is a session value setting wrapper for Oauth2ClientAuthorized
func SetOauth2ClientAuthorized(ses *sessions.Session, val bool) {
if val {
ses.Values[keyOAuth2ClientAuthorized] = true
} else {
delete(ses.Values, keyOAuth2ClientAuthorized)
}
}