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 // Create admin group
adminGroupUUID := uuid.NewString() adminGroupUUID := uuid.NewString()
hashedGroupName := utils.HashGroupName("admin") // Adjust if function name differs hashedGroupName := utils.HashGroupName("admin")
adminGroup := types.Group{ adminGroup := types.Group{
UUID: adminGroupUUID, UUID: adminGroupUUID,
Name: hashedGroupName, NameHash: hashedGroupName,
CreatedAt: now, // Add if field exists; remove otherwise Members: []string{},
// Members: []string{}, // Add if needed; e.g., add root later CreatedAt: now,
UpdatedAt: now,
} }
groupData, err := json.Marshal(adminGroup) groupData, err := json.Marshal(adminGroup)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to marshal admin group: %v", err) return nil, fmt.Errorf("failed to marshal admin group: %v", err)
} }
err = db.Update(func(txn *badger.Txn) error { 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 { if err != nil {
return nil, fmt.Errorf("failed to store admin group: %v", err) 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 // Create root user
rootUUID := uuid.NewString() rootUUID := uuid.NewString()
hashedNickname := utils.HashUserNickname("root") // Adjust if function name differs hashedNickname := utils.HashUserNickname("root")
rootUser := types.User{ rootUser := types.User{
UUID: rootUUID, UUID: rootUUID,
Nickname: hashedNickname, NicknameHash: hashedNickname,
Groups: []string{adminGroupUUID}, Groups: []string{adminGroupUUID},
CreatedAt: now, // Add if field exists; remove otherwise CreatedAt: now,
UpdatedAt: now,
} }
userData, err := json.Marshal(rootUser) userData, err := json.Marshal(rootUser)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to marshal root user: %v", err) return nil, fmt.Errorf("failed to marshal root user: %v", err)
} }
err = db.Update(func(txn *badger.Txn) error { 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 { if err != nil {
return nil, fmt.Errorf("failed to store root user: %v", err) return nil, fmt.Errorf("failed to store root user: %v", err)
} }
// Optionally update group members if bidirectional // Update admin group to include root user (bidirectional)
// adminGroup.Members = append(adminGroup.Members, rootUUID) adminGroup.Members = append(adminGroup.Members, rootUUID)
// Update group in DB if needed... 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 // Generate and store API token
scopes := []string{"admin", "read", "write", "create", "delete"} scopes := []string{"admin", "read", "write", "create", "delete"}