[MM-63355] Add AuthData to mmctl user search output (#30478)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
04a60b6609
Коммит
cfc1503d62
@@ -779,6 +779,7 @@ func deleteAllUsersCmdF(c client.Client, cmd *cobra.Command, args []string) erro
|
||||
type userOut struct {
|
||||
*model.User
|
||||
Deactivated bool
|
||||
AuthData string
|
||||
}
|
||||
|
||||
func searchUserCmdF(c client.Client, cmd *cobra.Command, args []string) error {
|
||||
@@ -799,6 +800,10 @@ func searchUserCmdF(c client.Client, cmd *cobra.Command, args []string) error {
|
||||
User: user,
|
||||
Deactivated: !(user.DeleteAt == 0),
|
||||
}
|
||||
if user.AuthData != nil {
|
||||
uout.AuthData = *user.AuthData
|
||||
}
|
||||
|
||||
tpl := `id: {{.Id}}
|
||||
deactivated: {{.Deactivated}}
|
||||
username: {{.Username}}
|
||||
@@ -807,7 +812,8 @@ position: {{.Position}}
|
||||
first_name: {{.FirstName}}
|
||||
last_name: {{.LastName}}
|
||||
email: {{.Email}}
|
||||
auth_service: {{.AuthService}}`
|
||||
auth_service: {{.AuthService}}
|
||||
auth_data: {{.AuthData}}`
|
||||
if i > 0 {
|
||||
tpl = "------------------------------\n" + tpl
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@ func (s *MmctlE2ETestSuite) TestSearchUserCmd() {
|
||||
user := printer.GetLines()[0].(userOut)
|
||||
s.Equal(s.th.BasicUser.Username, user.Username)
|
||||
s.False(user.Deactivated)
|
||||
s.Empty(user.AuthData)
|
||||
s.Empty(user.AuthService)
|
||||
s.Len(printer.GetErrorLines(), 0)
|
||||
})
|
||||
|
||||
@@ -149,6 +151,44 @@ func (s *MmctlE2ETestSuite) TestSearchUserCmd() {
|
||||
user := printer.GetLines()[0].(userOut)
|
||||
s.Equal(disabledUser.Username, user.Username)
|
||||
s.True(user.Deactivated) // Verify user shows as deactivated
|
||||
s.Empty(user.AuthData)
|
||||
s.Empty(user.AuthService)
|
||||
s.Len(printer.GetErrorLines(), 0)
|
||||
})
|
||||
|
||||
// Create a LDAP user
|
||||
ldapUser, appErr := s.th.App.CreateUser(s.th.Context, &model.User{
|
||||
Email: s.th.GenerateTestEmail(),
|
||||
Username: model.NewUsername(),
|
||||
AuthData: model.NewPointer("1234"),
|
||||
AuthService: model.UserAuthServiceLdap,
|
||||
})
|
||||
s.Require().Nil(appErr)
|
||||
|
||||
s.RunForSystemAdminAndLocal("Search for a user with authData", func(c client.Client) {
|
||||
printer.Clean()
|
||||
err := searchUserCmdF(c, &cobra.Command{}, []string{ldapUser.Email})
|
||||
s.Require().Nil(err)
|
||||
s.Len(printer.GetLines(), 1)
|
||||
user := printer.GetLines()[0].(userOut)
|
||||
s.Equal(ldapUser.Username, user.Username)
|
||||
s.False(user.Deactivated)
|
||||
s.Equal(*ldapUser.AuthData, user.AuthData)
|
||||
s.Equal(ldapUser.AuthService, user.AuthService)
|
||||
s.Len(printer.GetErrorLines(), 0)
|
||||
})
|
||||
|
||||
s.Run("Search for a user with authData/Client", func() {
|
||||
printer.Clean()
|
||||
// Non-admin should not be able to see AuthData or AuthService
|
||||
err := searchUserCmdF(s.th.Client, &cobra.Command{}, []string{ldapUser.Email})
|
||||
s.Require().Nil(err)
|
||||
s.Len(printer.GetLines(), 1)
|
||||
user := printer.GetLines()[0].(userOut)
|
||||
s.Equal(ldapUser.Username, user.Username)
|
||||
s.False(user.Deactivated)
|
||||
s.Equal("", user.AuthData)
|
||||
s.Equal("", user.AuthService)
|
||||
s.Len(printer.GetErrorLines(), 0)
|
||||
})
|
||||
|
||||
|
||||
@@ -628,6 +628,24 @@ func (s *MmctlUnitTestSuite) TestSearchUserCmd() {
|
||||
s.Require().Len(printer.GetErrorLines(), 0)
|
||||
})
|
||||
|
||||
s.Run("Search for a user with authData", func() {
|
||||
printer.Clean()
|
||||
emailArg := "example@example.com"
|
||||
mockUser := &model.User{Username: "ExampleUser", Email: emailArg, AuthData: model.NewPointer("1234"), AuthService: model.UserAuthServiceLdap}
|
||||
|
||||
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: false, AuthData: "1234"}, printer.GetLines()[0])
|
||||
s.Require().Len(printer.GetErrorLines(), 0)
|
||||
})
|
||||
|
||||
s.Run("Search for a nonexistent user", func() {
|
||||
printer.Clean()
|
||||
arg := "example@example.com"
|
||||
|
||||
Ссылка в новой задаче
Block a user