github.com/Cloud-Foundations/Dominator@v0.3.4/hypervisor/manager/owners.go (about)

     1  package manager
     2  
     3  import (
     4  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     5  	"github.com/Cloud-Foundations/Dominator/lib/stringutil"
     6  )
     7  
     8  func (m *Manager) changeOwners(ownerGroups, ownerUsers []string) error {
     9  	ownerGroupsMap := stringutil.ConvertListToMap(ownerGroups, false)
    10  	ownerUsersMap := stringutil.ConvertListToMap(ownerUsers, false)
    11  	m.mutex.Lock()
    12  	defer m.mutex.Unlock()
    13  	m.ownerGroups = ownerGroupsMap
    14  	m.ownerUsers = ownerUsersMap
    15  	return nil
    16  }
    17  
    18  func (m *Manager) checkOwnership(authInfo *srpc.AuthInformation) bool {
    19  	m.mutex.Lock()
    20  	defer m.mutex.Unlock()
    21  	if authInfo.Username != "" {
    22  		if _, ok := m.ownerUsers[authInfo.Username]; ok {
    23  			return true
    24  		}
    25  	}
    26  	for group := range authInfo.GroupList {
    27  		if _, ok := m.ownerGroups[group]; ok {
    28  			return true
    29  		}
    30  	}
    31  	return false
    32  }