in internal/aws/client.go [160:193]
func (c *client) IsUserInGroup(u *User, g *Group) (bool, error) {
if g == nil {
return false, ErrGroupNotSpecified
}
if u == nil {
return false, ErrUserNotSpecified
}
startURL, err := url.Parse(c.endpointURL.String())
if err != nil {
return false, err
}
filter := fmt.Sprintf("id eq \"%s\" and members eq \"%s\"", g.ID, u.ID)
startURL.Path = path.Join(startURL.Path, "/Groups")
q := startURL.Query()
q.Add("filter", filter)
startURL.RawQuery = q.Encode()
resp, err := c.sendRequest(http.MethodGet, startURL.String())
if err != nil {
return false, err
}
var r GroupFilterResults
err = json.Unmarshal(resp, &r)
if err != nil {
return false, err
}
return r.TotalResults > 0, nil
}