...

Source file src/edge-infra.dev/pkg/edge/auth-proxy/session/mapper.go

Documentation: edge-infra.dev/pkg/edge/auth-proxy/session

     1  package session
     2  
     3  import (
     4  	"edge-infra.dev/pkg/edge/api/bsl/types"
     5  	"edge-infra.dev/pkg/edge/api/graph/model"
     6  	"edge-infra.dev/pkg/edge/auth-proxy/utils"
     7  )
     8  
     9  // ToUserInstance maps an AuthUSer or OktaAuthPayload to a UserInstance
    10  func ToUserInstance(user interface{}) *UserInstance {
    11  	switch usr := user.(type) {
    12  	case *types.AuthUser:
    13  		return &UserInstance{
    14  			username:      usr.Username,
    15  			email:         usr.Email,
    16  			token:         usr.Token,
    17  			refreshToken:  usr.RefreshToken,
    18  			authType:      BSLAuthProvider,
    19  			roles:         utils.FilterEdgeRoles(usr.Roles),
    20  			organization:  usr.Organization,
    21  			bannerEdgeIDs: bannersToBannerEdgeIDs(usr.Banners),
    22  		}
    23  	case *model.OktaAuthPayload:
    24  		return &UserInstance{
    25  			username:      usr.Username,
    26  			email:         usr.Email,
    27  			token:         usr.Token,
    28  			refreshToken:  usr.RefreshToken,
    29  			authType:      OktaAuthProvider,
    30  			roles:         utils.FilterEdgeRoles(usr.Roles),
    31  			organization:  usr.Organization,
    32  			bannerEdgeIDs: bannersToBannerEdgeIDs(usr.Banners),
    33  		}
    34  	default:
    35  		return nil
    36  	}
    37  }
    38  
    39  func bannersToBannerEdgeIDs(banners []*model.Banner) (bannerEdgeIDs []string) {
    40  	for _, banner := range banners {
    41  		if banner.BannerEdgeID != "" {
    42  			bannerEdgeIDs = append(bannerEdgeIDs, banner.BannerEdgeID)
    43  		}
    44  	}
    45  	return bannerEdgeIDs
    46  }
    47  

View as plain text