Fix type field bugs from initial root user setup.

This commit is contained in:
Kalzu Rekku
2025-09-20 21:47:49 +03:00
parent 0b7af92761
commit 46e246374d

View File

@@ -133,19 +133,20 @@ func NewServer(config *types.Config) (*Server, error) {
// Create admin group
adminGroupUUID := uuid.NewString()
hashedGroupName := utils.HashGroupName("admin") // Adjust if function name differs
hashedGroupName := utils.HashGroupName("admin")
adminGroup := types.Group{
UUID: adminGroupUUID,
Name: hashedGroupName,
CreatedAt: now, // Add if field exists; remove otherwise
// Members: []string{}, // Add if needed; e.g., add root later
NameHash: hashedGroupName,
Members: []string{},
CreatedAt: now,
UpdatedAt: now,
}
groupData, err := json.Marshal(adminGroup)
if err != nil {
return nil, fmt.Errorf("failed to marshal admin group: %v", err)
}
err = db.Update(func(txn *badger.Txn) error {
return txn.Set([]byte(GroupStorageKey(adminGroupUUID)), groupData)
return txn.Set([]byte(auth.GroupStorageKey(adminGroupUUID)), groupData)
})
if err != nil {
return nil, fmt.Errorf("failed to store admin group: %v", err)
@@ -153,27 +154,37 @@ func NewServer(config *types.Config) (*Server, error) {
// Create root user
rootUUID := uuid.NewString()
hashedNickname := utils.HashUserNickname("root") // Adjust if function name differs
hashedNickname := utils.HashUserNickname("root")
rootUser := types.User{
UUID: rootUUID,
Nickname: hashedNickname,
Groups: []string{adminGroupUUID},
CreatedAt: now, // Add if field exists; remove otherwise
UUID: rootUUID,
NicknameHash: hashedNickname,
Groups: []string{adminGroupUUID},
CreatedAt: now,
UpdatedAt: now,
}
userData, err := json.Marshal(rootUser)
if err != nil {
return nil, fmt.Errorf("failed to marshal root user: %v", err)
}
err = db.Update(func(txn *badger.Txn) error {
return txn.Set([]byte(UserStorageKey(rootUUID)), userData)
return txn.Set([]byte(auth.UserStorageKey(rootUUID)), userData)
})
if err != nil {
return nil, fmt.Errorf("failed to store root user: %v", err)
}
// Optionally update group members if bidirectional
// adminGroup.Members = append(adminGroup.Members, rootUUID)
// Update group in DB if needed...
// Update admin group to include root user (bidirectional)
adminGroup.Members = append(adminGroup.Members, rootUUID)
groupData, err = json.Marshal(adminGroup)
if err != nil {
return nil, fmt.Errorf("failed to marshal updated admin group: %v", err)
}
err = db.Update(func(txn *badger.Txn) error {
return txn.Set([]byte(auth.GroupStorageKey(adminGroupUUID)), groupData)
})
if err != nil {
return nil, fmt.Errorf("failed to update admin group: %v", err)
}
// Generate and store API token
scopes := []string{"admin", "read", "write", "create", "delete"}