package cache import "sync" var systemPermissions []string var sp sync.RWMutex /* func AddSystemPermission(permission string) { sp.Lock() systemPermissions = append(systemPermissions, permission) sp.Unlock() } */ func AddSystemPermissions(permissions []string) { sp.Lock() for _, permission := range permissions { systemPermissions = append(systemPermissions, permission) } sp.Unlock() } func DeleteSystemPermission(permission string) { sp.Lock() for i := 0; i < len(systemPermissions); i++ { if systemPermissions[i] == permission { systemPermissions = removeSystemPermission(systemPermissions, i) break } } sp.Unlock() } func removeSystemPermission(permissions []string, i int) []string { return append(permissions[:i], permissions[i+1:]...) } func GetSystemPermissions() []string { sp.RLock() defer sp.RUnlock() return systemPermissions }