forked from ryyst/kalzu-value-store
Fix type field bugs from initial root user setup.
This commit is contained in:
@@ -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"}
|
||||
|
Reference in New Issue
Block a user