Dodo-app: fix sync user info bug
disable form after running app installation
Change-Id: I28dec5f8a9ad1d586bc2d2cc56a6c1c66cf2fdbe
diff --git a/core/installer/welcome/dodo_app.go b/core/installer/welcome/dodo_app.go
index 6ccbb6a..7a84d71 100644
--- a/core/installer/welcome/dodo_app.go
+++ b/core/installer/welcome/dodo_app.go
@@ -1075,6 +1075,9 @@
}
keyToUser := make(map[string]string)
for _, clientUser := range allClientUsers {
+ if clientUser == "admin" || clientUser == "fluxcd" {
+ continue
+ }
userData, ok := validUsernames[clientUser]
if !ok {
if err := s.client.RemoveUser(clientUser); err != nil {
@@ -1088,9 +1091,9 @@
return
}
for _, existingKey := range existingKeys {
- cleanKey := CleanKey(existingKey)
+ cleanKey := soft.CleanKey(existingKey)
keyOk := slices.ContainsFunc(userData.SSHPublicKeys, func(key string) bool {
- return cleanKey == CleanKey(key)
+ return cleanKey == soft.CleanKey(key)
})
if !keyOk {
if err := s.client.RemovePublicKey(clientUser, existingKey); err != nil {
@@ -1103,6 +1106,10 @@
}
}
for _, u := range users {
+ if err := s.st.CreateUser(u.Username, nil, ""); err != nil && !errors.Is(err, ErrorAlreadyExists) {
+ fmt.Println(err)
+ return
+ }
if len(u.SSHPublicKeys) == 0 {
continue
}
@@ -1118,11 +1125,14 @@
}
} else {
for _, key := range u.SSHPublicKeys {
- cleanKey := CleanKey(key)
- if user, ok := keyToUser[cleanKey]; ok && u.Username == user {
- panic("MUST NOT REACH!")
+ cleanKey := soft.CleanKey(key)
+ if user, ok := keyToUser[cleanKey]; ok {
+ if u.Username != user {
+ panic("MUST NOT REACH! IMPOSSIBLE KEY USER RECORD")
+ }
+ continue
}
- if err := s.client.AddPublicKey(u.Username, key); err != nil {
+ if err := s.client.AddPublicKey(u.Username, cleanKey); err != nil {
fmt.Println(err)
return
}
@@ -1140,16 +1150,8 @@
for _, u := range users {
if err := s.client.AddReadWriteCollaborator(r, u.Username); err != nil {
fmt.Println(err)
- return
+ continue
}
}
}
}
-
-func CleanKey(key string) string {
- fields := strings.Fields(key)
- if len(fields) < 2 {
- return key
- }
- return fields[0] + " " + fields[1]
-}