code: func GetAllProjects(c context.Context) ([]Project, error) {
  	q := datastore.NewQuery("Project")
  	projs := []Project{}
  
  	if err := datastore.GetAll(c, q, &projs); err != nil {
  		return nil, errors.Annotate(err, "getting projects").Err()
  	}
  	result := []Project{}
  	for _, proj := range projs {
  		switch allowed, err := IsAllowed(c, proj.ID); {
  		case err != nil:
  			return nil, err
  		case allowed:
  			result = append(result, proj)
  		}
  	}
  	return result, nil
  }
docs: // GetAllProjects returns all projects the current user has access to.