Add MM9720 changes back in for master merge
Этот коммит содержится в:
@@ -66,6 +66,15 @@ var ResetUserPasswordCmd = &cobra.Command{
|
||||
RunE: resetUserPasswordCmdF,
|
||||
}
|
||||
|
||||
var updateUserEmailCmd = &cobra.Command{
|
||||
Use: "email [user] [new email]",
|
||||
Short: "Change email of the user",
|
||||
Long: "Change email of the user.",
|
||||
Example: ` user email test user@example.com
|
||||
user activate username`,
|
||||
RunE: updateUserEmailCmdF,
|
||||
}
|
||||
|
||||
var ResetUserMfaCmd = &cobra.Command{
|
||||
Use: "resetmfa [users]",
|
||||
Short: "Turn off MFA",
|
||||
@@ -229,6 +238,7 @@ Global Flags:
|
||||
UserCreateCmd,
|
||||
UserInviteCmd,
|
||||
ResetUserPasswordCmd,
|
||||
updateUserEmailCmd,
|
||||
ResetUserMfaCmd,
|
||||
DeleteUserCmd,
|
||||
DeleteAllUsersCmd,
|
||||
@@ -399,6 +409,36 @@ func resetUserPasswordCmdF(command *cobra.Command, args []string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func updateUserEmailCmdF(command *cobra.Command, args []string) error {
|
||||
a, err := cmd.InitDBCommandContextCobra(command)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
newEmail := args[1]
|
||||
|
||||
if !model.IsValidEmail(newEmail) {
|
||||
return errors.New("Invalid email: '" + newEmail + "'")
|
||||
}
|
||||
|
||||
if len(args) != 2 {
|
||||
return errors.New("Expected two arguments. See help text for details.")
|
||||
}
|
||||
|
||||
user := getUserFromUserArg(a, args[0])
|
||||
if user == nil {
|
||||
return errors.New("Unable to find user '" + args[0] + "'")
|
||||
}
|
||||
|
||||
user.Email = newEmail
|
||||
_, errUpdate := a.UpdateUser(user, true)
|
||||
if err != nil {
|
||||
return errUpdate
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func resetUserMfaCmdF(command *cobra.Command, args []string) error {
|
||||
a, err := cmd.InitDBCommandContextCobra(command)
|
||||
if err != nil {
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/mattermost/mattermost-server/api"
|
||||
"github.com/mattermost/mattermost-server/cmd"
|
||||
"github.com/mattermost/mattermost-server/model"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestCreateUserWithTeam(t *testing.T) {
|
||||
@@ -80,3 +81,30 @@ func TestMakeUserActiveAndInactive(t *testing.T) {
|
||||
// activate the inactive user
|
||||
cmd.CheckCommand(t, "user", "activate", th.BasicUser.Email)
|
||||
}
|
||||
|
||||
func TestChangeUserEmail(t *testing.T) {
|
||||
th := api.Setup().InitBasic()
|
||||
defer th.TearDown()
|
||||
|
||||
newEmail := model.NewId() + "@mattermost-test.com"
|
||||
|
||||
cmd.CheckCommand(t, "user", "email", th.BasicUser.Username, newEmail)
|
||||
if result := <-th.App.Srv.Store.User().GetByEmail(th.BasicUser.Email); result.Err == nil {
|
||||
t.Fatal("should've updated to the new email")
|
||||
}
|
||||
if result := <-th.App.Srv.Store.User().GetByEmail(newEmail); result.Err != nil {
|
||||
t.Fatal()
|
||||
} else {
|
||||
user := result.Data.(*model.User)
|
||||
if user.Email != newEmail {
|
||||
t.Fatal("should've updated to the new email")
|
||||
}
|
||||
}
|
||||
|
||||
// should fail because using an invalid email
|
||||
require.Error(t, cmd.RunCommand(t, "user", "email", th.BasicUser.Username, "wrong$email.com"))
|
||||
|
||||
// should fail because user not found
|
||||
require.Error(t, cmd.RunCommand(t, "user", "email", "invalidUser", newEmail))
|
||||
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user