summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/app.go8
-rw-r--r--app/app_test.go28
2 files changed, 36 insertions, 0 deletions
diff --git a/app/app.go b/app/app.go
index b31f67d6b..2cdf333c1 100644
--- a/app/app.go
+++ b/app/app.go
@@ -560,6 +560,14 @@ func (a *App) DoAdvancedPermissionsMigration() {
return
}
+ config := a.Config()
+ if *config.ServiceSettings.AllowEditPost == model.ALLOW_EDIT_POST_ALWAYS {
+ *config.ServiceSettings.PostEditTimeLimit = -1
+ if err := a.SaveConfig(config, true); err != nil {
+ mlog.Error("Failed to update config in Advanced Permissions Phase 1 Migration.", mlog.String("error", err.Error()))
+ }
+ }
+
system := model.System{
Name: ADVANCED_PERMISSIONS_MIGRATION_KEY,
Value: "true",
diff --git a/app/app_test.go b/app/app_test.go
index ccf7faeeb..cb6917073 100644
--- a/app/app_test.go
+++ b/app/app_test.go
@@ -426,4 +426,32 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
assert.Nil(t, err)
assert.Equal(t, permissions, role.Permissions)
}
+
+ // Check that the config setting for "always" and "time_limit" edit posts is updated correctly.
+ th.ResetRoleMigration()
+
+ config := th.App.GetConfig()
+ *config.ServiceSettings.AllowEditPost = "always"
+ *config.ServiceSettings.PostEditTimeLimit = 300
+ th.App.SaveConfig(config, false)
+
+ th.App.DoAdvancedPermissionsMigration()
+ config = th.App.GetConfig()
+ assert.Equal(t, -1, *config.ServiceSettings.PostEditTimeLimit)
+
+ th.ResetRoleMigration()
+
+ config = th.App.GetConfig()
+ *config.ServiceSettings.AllowEditPost = "time_limit"
+ *config.ServiceSettings.PostEditTimeLimit = 300
+ th.App.SaveConfig(config, false)
+
+ th.App.DoAdvancedPermissionsMigration()
+ config = th.App.GetConfig()
+ assert.Equal(t, 300, *config.ServiceSettings.PostEditTimeLimit)
+
+ config = th.App.GetConfig()
+ *config.ServiceSettings.AllowEditPost = "always"
+ *config.ServiceSettings.PostEditTimeLimit = 300
+ th.App.SaveConfig(config, false)
}