...
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
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