| 184 | } |
| 185 | |
| 186 | func (hc *HTTPClient) AddRulesToGroup(group string, rules []AclRule, newGroup bool) error { |
| 187 | const query = `mutation updateGroup($name: String!, $rules: [RuleRef!]!) { |
| 188 | updateGroup(input: {filter: {name: {eq: $name}},set: {rules: $rules}}) { |
| 189 | group { |
| 190 | name |
| 191 | rules { |
| 192 | predicate |
| 193 | permission |
| 194 | } |
| 195 | } |
| 196 | } |
| 197 | }` |
| 198 | params := GraphQLParams{ |
| 199 | Query: query, |
| 200 | Variables: map[string]interface{}{ |
| 201 | "name": group, |
| 202 | "rules": rules, |
| 203 | }, |
| 204 | } |
| 205 | resp, err := hc.RunGraphqlQuery(params, true) |
| 206 | if err != nil { |
| 207 | return err |
| 208 | } |
| 209 | if !newGroup { |
| 210 | return nil |
| 211 | } |
| 212 | |
| 213 | rulesb, err := json.Marshal(rules) |
| 214 | if err != nil { |
| 215 | return errors.Wrap(err, "error marshalling rules") |
| 216 | } |
| 217 | expectedOutput := fmt.Sprintf(`{ |
| 218 | "updateGroup": { |
| 219 | "group": [{ |
| 220 | "name": "%s", |
| 221 | "rules": %s |
| 222 | }] |
| 223 | } |
| 224 | }`, group, rulesb) |
| 225 | if err := CompareJSON(expectedOutput, string(resp)); err != nil { |
| 226 | return errors.Wrap(err, "unexpected repsonse") |
| 227 | } |
| 228 | return nil |
| 229 | } |
| 230 | |
| 231 | func (hc *HTTPClient) AddUserToGroup(userName, group string) error { |
| 232 | const query = `mutation updateUser($name: String!, $group: String!) { |