MCPcopy Index your code
hub / github.com/dgraph-io/dgraph / AddRulesToGroup

Method AddRulesToGroup

dgraphapi/acl.go:186–229  ·  view source on GitHub ↗
(group string, rules []AclRule, newGroup bool)

Source from the content-addressed store, hash-verified

184}
185
186func (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
231func (hc *HTTPClient) AddUserToGroup(userName, group string) error {
232 const query = `mutation updateUser($name: String!, $group: String!) {

Calls 2

RunGraphqlQueryMethod · 0.95
CompareJSONFunction · 0.70