mirror of
https://github.com/juanfont/headscale.git
synced 2026-10-03 21:33:36 +09:00
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:
@@ -231,7 +231,7 @@ var renameUserCmd = &cobra.Command{
|
|||||||
newName, _ := cmd.Flags().GetString("new-name")
|
newName, _ := cmd.Flags().GetString("new-name")
|
||||||
|
|
||||||
renameReq := &v1.RenameUserRequest{
|
renameReq := &v1.RenameUserRequest{
|
||||||
OldId: id,
|
OldId: users.GetUsers()[0].GetId(),
|
||||||
NewName: newName,
|
NewName: newName,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+40
-1
@@ -237,13 +237,52 @@ func TestUserCommand(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}, integrationutil.ScaledTimeout(20*time.Second), 1*time.Second)
|
}, 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(
|
deleteResult, err = headscale.Execute(
|
||||||
[]string{
|
[]string{
|
||||||
"headscale",
|
"headscale",
|
||||||
"users",
|
"users",
|
||||||
"destroy",
|
"destroy",
|
||||||
"--force",
|
"--force",
|
||||||
"--name=newname",
|
"--name=renamedbyname",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|||||||
Reference in New Issue
Block a user