MCPcopy Create free account
hub / github.com/belak/gitdir / ensureAdminUserYaml

Function ensureAdminUserYaml

config_ensure.go:233–249  ·  view source on GitHub ↗
(data []byte, username, pubKey string)

Source from the content-addressed store, hash-verified

231}
232
233func ensureAdminUserYaml(data []byte, username, pubKey string) (*yaml.Node, bool, error) {
234 rootNode, targetNode, err := yaml.EnsureDocument(data)
235 if err != nil {
236 return nil, false, err
237 }
238
239 usersNode, _ := targetNode.EnsureKey("users", yaml.NewMappingNode(), nil)
240 userNode, _ := usersNode.EnsureKey(username, yaml.NewMappingNode(), nil)
241 keysNode, _ := userNode.EnsureKey("keys", yaml.NewSequenceNode(), nil)
242 modified := keysNode.AppendUniqueScalar(yaml.NewScalarNode(pubKey, ""))
243
244 // Ensure this user is an admin and isn't disabled
245 _, adminModified := userNode.EnsureKey("is_admin", yaml.NewScalarNode("true", yaml.ScalarTagBool), nil)
246 disabledModified := userNode.RemoveKey("disabled")
247
248 return rootNode, modified || disabledModified || adminModified, nil
249}

Callers 1

ensureAdminUserFunction · 0.85

Calls 7

EnsureDocumentFunction · 0.92
NewMappingNodeFunction · 0.92
NewSequenceNodeFunction · 0.92
NewScalarNodeFunction · 0.92
EnsureKeyMethod · 0.80
AppendUniqueScalarMethod · 0.80
RemoveKeyMethod · 0.80

Tested by

no test coverage detected