Add deactivation status to mmctl user search output (#30379)

Этот коммит содержится в:
Ben Schumacher
2025-05-13 08:52:13 +02:00
коммит произвёл GitHub
родитель a8a2ae3af0
Коммит e1c94e7b63
3 изменённых файлов: 56 добавлений и 5 удалений

Просмотреть файл

@@ -775,6 +775,12 @@ func deleteAllUsersCmdF(c client.Client, cmd *cobra.Command, args []string) erro
return nil
}
// userOut is the output format for users.
type userOut struct {
*model.User
Deactivated bool
}
func searchUserCmdF(c client.Client, cmd *cobra.Command, args []string) error {
printer.SetSingle(true)
@@ -789,7 +795,12 @@ func searchUserCmdF(c client.Client, cmd *cobra.Command, args []string) error {
}
for i, user := range users {
uout := userOut{
User: user,
Deactivated: !(user.DeleteAt == 0),
}
tpl := `id: {{.Id}}
deactivated: {{.Deactivated}}
username: {{.Username}}
nickname: {{.Nickname}}
position: {{.Position}}
@@ -801,7 +812,7 @@ auth_service: {{.AuthService}}`
tpl = "------------------------------\n" + tpl
}
printer.PrintT(tpl, user)
printer.PrintT(tpl, uout)
}
return nil

Просмотреть файл

@@ -125,8 +125,30 @@ func (s *MmctlE2ETestSuite) TestSearchUserCmd() {
err := searchUserCmdF(c, &cobra.Command{}, []string{s.th.BasicUser.Email})
s.Require().Nil(err)
s.Len(printer.GetLines(), 1)
user := printer.GetLines()[0].(*model.User)
user := printer.GetLines()[0].(userOut)
s.Equal(s.th.BasicUser.Username, user.Username)
s.False(user.Deactivated)
s.Len(printer.GetErrorLines(), 0)
})
s.RunForAllClients("Search for a disabled user", func(c client.Client) {
printer.Clean()
// Create a disabled user
disabledUser, appErr := s.th.App.CreateUser(s.th.Context, &model.User{
Email: s.th.GenerateTestEmail(),
Username: model.NewUsername(),
Password: model.NewId(),
DeleteAt: model.GetMillis(), // Set DeleteAt to disable the user
})
s.Require().Nil(appErr)
err := searchUserCmdF(c, &cobra.Command{}, []string{disabledUser.Email})
s.Require().Nil(err)
s.Len(printer.GetLines(), 1)
user := printer.GetLines()[0].(userOut)
s.Equal(disabledUser.Username, user.Username)
s.True(user.Deactivated) // Verify user shows as deactivated
s.Len(printer.GetErrorLines(), 0)
})

Просмотреть файл

@@ -596,17 +596,35 @@ func (s *MmctlUnitTestSuite) TestDeleteAllUsersCmd() {
func (s *MmctlUnitTestSuite) TestSearchUserCmd() {
s.Run("Search for an existing user", func() {
emailArg := "example@example.com"
mockUser := model.User{Username: "ExampleUser", Email: emailArg}
mockUser := &model.User{Username: "ExampleUser", Email: emailArg}
s.client.
EXPECT().
GetUserByEmail(context.TODO(), emailArg, "").
Return(&mockUser, &model.Response{}, nil).
Return(mockUser, &model.Response{}, nil).
Times(1)
err := searchUserCmdF(s.client, &cobra.Command{}, []string{emailArg})
s.Require().Nil(err)
s.Require().Equal(&mockUser, printer.GetLines()[0])
s.Require().Equal(userOut{User: mockUser, Deactivated: false}, printer.GetLines()[0])
s.Require().Len(printer.GetErrorLines(), 0)
})
s.Run("Search for a disabled user", func() {
printer.Clean()
emailArg := "example@example.com"
mockUser := &model.User{Username: "ExampleUser", Email: emailArg, DeleteAt: 1234}
s.client.
EXPECT().
GetUserByEmail(context.TODO(), emailArg, "").
Return(mockUser, &model.Response{}, nil).
Times(1)
err := searchUserCmdF(s.client, &cobra.Command{}, []string{emailArg})
s.Require().Nil(err)
s.Require().Len(printer.GetLines(), 1)
s.Require().Equal(userOut{User: mockUser, Deactivated: true}, printer.GetLines()[0])
s.Require().Len(printer.GetErrorLines(), 0)
})