Merge remote-tracking branch 'origin/release-4.9' into merge49final

Этот коммит содержится в:
Derrick Anderson
2018-04-17 09:21:33 -04:00
родитель 997df03ac1 3176e13b1f
Коммит 885b8e51f3
5 изменённых файлов: 15 добавлений и 80 удалений

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

@@ -126,7 +126,14 @@ func New(options ...Option) (outApp *App, outErr error) {
} }
} }
model.AppErrorInit(utils.T) model.AppErrorInit(utils.T)
// The first time we load config, clear any existing filters to allow the configuration
// changes to take effect. This is safe only because no one else is logging at this point.
l4g.Close()
if err := app.LoadConfig(app.configFile); err != nil { if err := app.LoadConfig(app.configFile); err != nil {
// Re-initialize the default logger as we bail out.
l4g.Global = l4g.NewDefaultLogger(l4g.DEBUG)
return nil, err return nil, err
} }
app.EnableConfigWatch() app.EnableConfigWatch()

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

@@ -12,12 +12,7 @@ import (
) )
func (a *App) SessionHasPermissionTo(session model.Session, permission *model.Permission) bool { func (a *App) SessionHasPermissionTo(session model.Session, permission *model.Permission) bool {
if !a.RolesGrantPermission(session.GetUserRoles(), permission.Id) { return a.RolesGrantPermission(session.GetUserRoles(), permission.Id)
a.ClearSessionCacheForUser(session.UserId)
return false
}
return true
} }
/// DO NOT USE: LEGACY /// DO NOT USE: LEGACY

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

@@ -66,15 +66,6 @@ var ResetUserPasswordCmd = &cobra.Command{
RunE: resetUserPasswordCmdF, 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{ var ResetUserMfaCmd = &cobra.Command{
Use: "resetmfa [users]", Use: "resetmfa [users]",
Short: "Turn off MFA", Short: "Turn off MFA",
@@ -238,7 +229,6 @@ Global Flags:
UserCreateCmd, UserCreateCmd,
UserInviteCmd, UserInviteCmd,
ResetUserPasswordCmd, ResetUserPasswordCmd,
updateUserEmailCmd,
ResetUserMfaCmd, ResetUserMfaCmd,
DeleteUserCmd, DeleteUserCmd,
DeleteAllUsersCmd, DeleteAllUsersCmd,
@@ -409,36 +399,6 @@ func resetUserPasswordCmdF(command *cobra.Command, args []string) error {
return nil 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 { func resetUserMfaCmdF(command *cobra.Command, args []string) error {
a, err := cmd.InitDBCommandContextCobra(command) a, err := cmd.InitDBCommandContextCobra(command)
if err != nil { if err != nil {

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

@@ -9,7 +9,6 @@ import (
"github.com/mattermost/mattermost-server/api" "github.com/mattermost/mattermost-server/api"
"github.com/mattermost/mattermost-server/cmd" "github.com/mattermost/mattermost-server/cmd"
"github.com/mattermost/mattermost-server/model" "github.com/mattermost/mattermost-server/model"
"github.com/stretchr/testify/require"
) )
func TestCreateUserWithTeam(t *testing.T) { func TestCreateUserWithTeam(t *testing.T) {
@@ -81,30 +80,3 @@ func TestMakeUserActiveAndInactive(t *testing.T) {
// activate the inactive user // activate the inactive user
cmd.CheckCommand(t, "user", "activate", th.BasicUser.Email) 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))
}

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

@@ -84,13 +84,15 @@ func ConfigureCmdLineLog() {
ConfigureLog(&ls) ConfigureLog(&ls)
} }
// ConfigureLog enables and configures logging.
//
// Note that it is not currently possible to disable filters nor to modify previously enabled
// filters, given the lack of concurrency guarantees from the underlying l4g library.
//
// TODO: this code initializes console and file logging. It will eventually be replaced by JSON logging in logger/logger.go // TODO: this code initializes console and file logging. It will eventually be replaced by JSON logging in logger/logger.go
// See PLT-3893 for more information // See PLT-3893 for more information
func ConfigureLog(s *model.LogSettings) { func ConfigureLog(s *model.LogSettings) {
if _, alreadySet := l4g.Global["stdout"]; !alreadySet && s.EnableConsole {
l4g.Close()
if s.EnableConsole {
level := l4g.DEBUG level := l4g.DEBUG
if s.ConsoleLevel == "INFO" { if s.ConsoleLevel == "INFO" {
level = l4g.INFO level = l4g.INFO
@@ -105,8 +107,7 @@ func ConfigureLog(s *model.LogSettings) {
l4g.AddFilter("stdout", level, lw) l4g.AddFilter("stdout", level, lw)
} }
if s.EnableFile { if _, alreadySet := l4g.Global["file"]; !alreadySet && s.EnableFile {
var fileFormat = s.FileFormat var fileFormat = s.FileFormat
if fileFormat == "" { if fileFormat == "" {