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
|
// 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"}
|
||||||
|
|||||||
Reference in New Issue
Block a user