code: func (g *GrantsByRole) CallerHasRole(c context.Context, role Role) (bool, error) {
  	switch role {
  	case Owner:
  		return hasGrant(c, g.Owners, groupsAdministrators)
  	case Triggerer:
  		return hasGrant(c, g.Owners, g.Triggerers, groupsAdministrators)
  	case Reader:
  		return hasGrant(c, g.Owners, g.Readers, g.Triggerers, groupsAdministrators)
  	default:
  		panic(errors.New("unknown role, bug in code"))
  	}
  }
docs: // CallerHasRole does what it says and returns only transient errors.