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  }