github.com/Axway/agent-sdk@v1.1.101/pkg/agent/cache/teams.go (about) 1 package cache 2 3 import ( 4 defs "github.com/Axway/agent-sdk/pkg/apic/definitions" 5 6 v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 7 "github.com/Axway/agent-sdk/pkg/cache" 8 ) 9 10 const accessControlList = "AccessControlListKey" 11 12 // GetTeamCache - returns the team cache 13 func (c *cacheManager) GetTeamCache() cache.Cache { 14 return c.teams 15 } 16 17 // AddTeam saves a team to the cache 18 func (c *cacheManager) AddTeam(team *defs.PlatformTeam) { 19 defer c.setCacheUpdated(true) 20 c.teams.SetWithSecondaryKey(team.Name, team.ID, *team) 21 } 22 23 // GetTeamByName gets a team by name 24 func (c *cacheManager) GetTeamByName(name string) *defs.PlatformTeam { 25 item, err := c.teams.Get(name) 26 if err != nil { 27 return nil 28 } 29 team, ok := item.(defs.PlatformTeam) 30 if !ok { 31 return nil 32 } 33 return &team 34 } 35 36 // GetDefaultTeam gets the default team 37 func (c *cacheManager) GetDefaultTeam() *defs.PlatformTeam { 38 names := c.teams.GetKeys() 39 40 var defaultTeam defs.PlatformTeam 41 for _, name := range names { 42 item, _ := c.teams.Get(name) 43 team, ok := item.(defs.PlatformTeam) 44 if !ok { 45 continue 46 } 47 48 if team.Default { 49 defaultTeam = team 50 break 51 } 52 53 continue 54 } 55 56 return &defaultTeam 57 } 58 59 // GetTeamByID gets a team by id 60 func (c *cacheManager) GetTeamByID(id string) *defs.PlatformTeam { 61 item, err := c.teams.GetBySecondaryKey(id) 62 if err != nil { 63 return nil 64 } 65 team, ok := item.(defs.PlatformTeam) 66 if !ok { 67 return nil 68 } 69 return &team 70 } 71 72 // SetAccessControlList saves the Access Control List to the cache 73 func (c *cacheManager) SetAccessControlList(acl *v1.ResourceInstance) { 74 defer c.setCacheUpdated(true) 75 c.teams.Set(accessControlList, acl) 76 } 77 78 // DeleteAccessControlList removes the Access Control List to the cache 79 func (c *cacheManager) DeleteAccessControlList() error { 80 return c.teams.Delete(accessControlList) 81 } 82 83 // GetAccessControlList gets the Access Control List from the cache 84 func (c *cacheManager) GetAccessControlList() *v1.ResourceInstance { 85 c.ApplyResourceReadLock() 86 defer c.ReleaseResourceReadLock() 87 88 item, _ := c.teams.Get(accessControlList) 89 if item != nil { 90 instance, ok := item.(*v1.ResourceInstance) 91 if ok { 92 return instance 93 } 94 } 95 return nil 96 }