cli: fix users rename when resolved by name

The rename request sent the raw --identifier flag value, which is 0 when
the user was resolved with --name, so the API answered "user not found".
Send the matched user's ID instead.

Equivalent of #3442 on main, rewritten: that fix targets the v1 HTTP client,
which 0.29 does not have.
This commit is contained in:
Kristoffer Dalby
2026-09-04 09:44:22 +00:00
parent 625fa86e1a
commit b3b55cc472
2 changed files with 41 additions and 2 deletions
+1 -1
View File
@@ -231,7 +231,7 @@ var renameUserCmd = &cobra.Command{
newName, _ := cmd.Flags().GetString("new-name")
renameReq := &v1.RenameUserRequest{
OldId: id,
OldId: users.GetUsers()[0].GetId(),
NewName: newName,
}
+40 -1
View File
@@ -237,13 +237,52 @@ func TestUserCommand(t *testing.T) {
}
}, integrationutil.ScaledTimeout(20*time.Second), 1*time.Second)
_, err = headscale.Execute(
[]string{
"headscale",
"users",
"rename",
"--output=json",
"--name=newname",
"--new-name=renamedbyname",
},
)
require.NoError(t, err)
var listAfterRenameByName []*v1.User
assert.EventuallyWithT(t, func(ct *assert.CollectT) {
err := executeAndUnmarshal(headscale,
[]string{
"headscale",
"users",
"list",
"--output",
"json",
},
&listAfterRenameByName,
)
assert.NoError(ct, err)
if !assert.Len(ct, listAfterRenameByName, 1) {
return
}
assert.Equal(
ct,
"renamedbyname",
listAfterRenameByName[0].GetName(),
"Should have renamedbyname after rename resolved by name",
)
}, integrationutil.ScaledTimeout(20*time.Second), 1*time.Second)
deleteResult, err = headscale.Execute(
[]string{
"headscale",
"users",
"destroy",
"--force",
"--name=newname",
"--name=renamedbyname",
},
)
require.NoError(t, err)