104 lines
2.5 KiB
Go
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)
|
|
}
|
|
}
|