code: func (c *Console) FilterBuilders(perms access.Permissions) {
  	okBuilderIDs := make([]string, 0, len(c.Builders))
  	for _, id := range c.Builders {
  		if bucket := extractBucket(id); bucket != "" && !perms.Can(bucket, access.AccessBucket) {
  			continue
  		}
  		okBuilderIDs = append(okBuilderIDs, id)
  	}
  	c.Builders = okBuilderIDs
  	okBuilders := make([]*config.Builder, 0, len(c.Def.Builders))
  	// A single builder entry could have multiple builder names.
  	for _, b := range c.Def.Builders {
  		okNames := make([]string, 0, len(b.Name))
  		for _, name := range b.Name {
  			if bucket := extractBucket(name); bucket != "" && !perms.Can(bucket, access.AccessBucket) {
  				continue
  			}
  			okNames = append(okNames, name)
  		}
  		b.Name = okNames
  		if len(b.Name) > 0 {
  			okBuilders = append(okBuilders, b)
  		}
  	}
  	c.Def.Builders = okBuilders
  }
docs: // FilterBuilders uses an access.Permissions to filter out builder IDs and builders
  // from the definition, and builders in the definition's header, which are not
  // allowed by the permissions.