Revert "[MM-46579] Add a limit for preferences" (#22086)

Этот коммит содержится в:
Konstantinos Pittas
2023-01-16 15:30:14 +02:00
коммит произвёл GitHub
родитель 6b6150d374
Коммит 1fdedf30f1
10 изменённых файлов: 30 добавлений и 42 удалений

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

@@ -33,8 +33,7 @@ func (w *preferencesServiceWrapper) DeletePreferencesForUser(userID string, pref
} }
func (a *App) GetPreferencesForUser(userID string) (model.Preferences, *model.AppError) { func (a *App) GetPreferencesForUser(userID string) (model.Preferences, *model.AppError) {
limit := *a.Config().ServiceSettings.ExperimentalMaxUserPreferences preferences, err := a.Srv().Store().Preference().GetAll(userID)
preferences, err := a.Srv().Store().Preference().GetAll(userID, limit)
if err != nil { if err != nil {
return nil, model.NewAppError("GetPreferencesForUser", "app.preference.get_all.app_error", nil, "", http.StatusBadRequest).Wrap(err) return nil, model.NewAppError("GetPreferencesForUser", "app.preference.get_all.app_error", nil, "", http.StatusBadRequest).Wrap(err)
} }

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

@@ -385,7 +385,6 @@ type ServiceSettings struct {
EnableCustomGroups *bool `access:"site_users_and_teams"` EnableCustomGroups *bool `access:"site_users_and_teams"`
SelfHostedPurchase *bool `access:"write_restrictable,cloud_restrictable"` SelfHostedPurchase *bool `access:"write_restrictable,cloud_restrictable"`
AllowSyncedDrafts *bool `access:"site_posts"` AllowSyncedDrafts *bool `access:"site_posts"`
ExperimentalMaxUserPreferences *int
} }
func (s *ServiceSettings) SetDefaults(isUpdate bool) { func (s *ServiceSettings) SetDefaults(isUpdate bool) {
@@ -858,10 +857,6 @@ func (s *ServiceSettings) SetDefaults(isUpdate bool) {
if s.SelfHostedPurchase == nil { if s.SelfHostedPurchase == nil {
s.SelfHostedPurchase = NewBool(true) s.SelfHostedPurchase = NewBool(true)
} }
if s.ExperimentalMaxUserPreferences == nil {
s.ExperimentalMaxUserPreferences = NewInt(1000)
}
} }
type ClusterSettings struct { type ClusterSettings struct {

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

@@ -460,7 +460,6 @@ func (ts *TelemetryService) trackConfig() {
"post_priority": *cfg.ServiceSettings.PostPriority, "post_priority": *cfg.ServiceSettings.PostPriority,
"self_hosted_purchase": *cfg.ServiceSettings.SelfHostedPurchase, "self_hosted_purchase": *cfg.ServiceSettings.SelfHostedPurchase,
"allow_synced_drafts": *cfg.ServiceSettings.AllowSyncedDrafts, "allow_synced_drafts": *cfg.ServiceSettings.AllowSyncedDrafts,
"experimental_max_user_preferences": *cfg.ServiceSettings.ExperimentalMaxUserPreferences,
}) })
ts.SendTelemetry(TrackConfigTeam, map[string]any{ ts.SendTelemetry(TrackConfigTeam, map[string]any{

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

@@ -6919,7 +6919,7 @@ func (s *OpenTracingLayerPreferenceStore) Get(userID string, category string, na
return result, err return result, err
} }
func (s *OpenTracingLayerPreferenceStore) GetAll(userID string, limit int) (model.Preferences, error) { func (s *OpenTracingLayerPreferenceStore) GetAll(userID string) (model.Preferences, error) {
origCtx := s.Root.Store.Context() origCtx := s.Root.Store.Context()
span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "PreferenceStore.GetAll") span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "PreferenceStore.GetAll")
s.Root.Store.SetContext(newCtx) s.Root.Store.SetContext(newCtx)
@@ -6928,7 +6928,7 @@ func (s *OpenTracingLayerPreferenceStore) GetAll(userID string, limit int) (mode
}() }()
defer span.Finish() defer span.Finish()
result, err := s.PreferenceStore.GetAll(userID, limit) result, err := s.PreferenceStore.GetAll(userID)
if err != nil { if err != nil {
span.LogFields(spanlog.Error(err)) span.LogFields(spanlog.Error(err))
ext.Error.Set(span, true) ext.Error.Set(span, true)

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

@@ -7845,11 +7845,11 @@ func (s *RetryLayerPreferenceStore) Get(userID string, category string, name str
} }
func (s *RetryLayerPreferenceStore) GetAll(userID string, limit int) (model.Preferences, error) { func (s *RetryLayerPreferenceStore) GetAll(userID string) (model.Preferences, error) {
tries := 0 tries := 0
for { for {
result, err := s.PreferenceStore.GetAll(userID, limit) result, err := s.PreferenceStore.GetAll(userID)
if err == nil { if err == nil {
return result, nil return result, nil
} }

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

@@ -175,22 +175,17 @@ func (s SqlPreferenceStore) GetCategory(userId string, category string) (model.P
} }
func (s SqlPreferenceStore) GetAll(userId string, limit int) (model.Preferences, error) { func (s SqlPreferenceStore) GetAll(userId string) (model.Preferences, error) {
query := s.getQueryBuilder(). var preferences model.Preferences
query, args, err := s.getQueryBuilder().
Select("*"). Select("*").
From("Preferences"). From("Preferences").
Where(sq.Eq{"UserId": userId}) Where(sq.Eq{"UserId": userId}).
if limit > 0 { ToSql()
query = query.Limit(uint64(limit))
}
queryString, args, err := query.ToSql()
if err != nil { if err != nil {
return nil, errors.Wrap(err, "could not build sql query to get preference") return nil, errors.Wrap(err, "could not build sql query to get preference")
} }
if err = s.GetReplicaX().Select(&preferences, query, args...); err != nil {
var preferences model.Preferences
if err = s.GetReplicaX().Select(&preferences, queryString, args...); err != nil {
return nil, errors.Wrapf(err, "failed to find Preference with userId=%s", userId) return nil, errors.Wrapf(err, "failed to find Preference with userId=%s", userId)
} }
return preferences, nil return preferences, nil

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

@@ -641,7 +641,7 @@ type PreferenceStore interface {
GetCategory(userID string, category string) (model.Preferences, error) GetCategory(userID string, category string) (model.Preferences, error)
GetCategoryAndName(category string, nane string) (model.Preferences, error) GetCategoryAndName(category string, nane string) (model.Preferences, error)
Get(userID string, category string, name string) (*model.Preference, error) Get(userID string, category string, name string) (*model.Preference, error)
GetAll(userID string, limit int) (model.Preferences, error) GetAll(userID string) (model.Preferences, error)
Delete(userID, category, name string) error Delete(userID, category, name string) error
DeleteCategory(userID string, category string) error DeleteCategory(userID string, category string) error
DeleteCategoryAndName(category string, name string) error DeleteCategoryAndName(category string, name string) error

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

@@ -121,13 +121,13 @@ func (_m *PreferenceStore) Get(userID string, category string, name string) (*mo
return r0, r1 return r0, r1
} }
// GetAll provides a mock function with given fields: userID, limit // GetAll provides a mock function with given fields: userID
func (_m *PreferenceStore) GetAll(userID string, limit int) (model.Preferences, error) { func (_m *PreferenceStore) GetAll(userID string) (model.Preferences, error) {
ret := _m.Called(userID, limit) ret := _m.Called(userID)
var r0 model.Preferences var r0 model.Preferences
if rf, ok := ret.Get(0).(func(string, int) model.Preferences); ok { if rf, ok := ret.Get(0).(func(string) model.Preferences); ok {
r0 = rf(userID, limit) r0 = rf(userID)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(model.Preferences) r0 = ret.Get(0).(model.Preferences)
@@ -135,8 +135,8 @@ func (_m *PreferenceStore) GetAll(userID string, limit int) (model.Preferences,
} }
var r1 error var r1 error
if rf, ok := ret.Get(1).(func(string, int) error); ok { if rf, ok := ret.Get(1).(func(string) error); ok {
r1 = rf(userID, limit) r1 = rf(userID)
} else { } else {
r1 = ret.Error(1) r1 = ret.Error(1)
} }

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

@@ -184,7 +184,7 @@ func testPreferenceGetAll(t *testing.T, ss store.Store) {
err := ss.Preference().Save(preferences) err := ss.Preference().Save(preferences)
require.NoError(t, err) require.NoError(t, err)
result, err := ss.Preference().GetAll(userId, 0) result, err := ss.Preference().GetAll(userId)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, 3, len(result), "got the wrong number of preferences") require.Equal(t, 3, len(result), "got the wrong number of preferences")
@@ -243,13 +243,13 @@ func testPreferenceDelete(t *testing.T, ss store.Store) {
err := ss.Preference().Save(model.Preferences{preference}) err := ss.Preference().Save(model.Preferences{preference})
require.NoError(t, err) require.NoError(t, err)
preferences, err := ss.Preference().GetAll(preference.UserId, 0) preferences, err := ss.Preference().GetAll(preference.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference") assert.Len(t, preferences, 1, "should've returned 1 preference")
err = ss.Preference().Delete(preference.UserId, preference.Category, preference.Name) err = ss.Preference().Delete(preference.UserId, preference.Category, preference.Name)
require.NoError(t, err) require.NoError(t, err)
preferences, err = ss.Preference().GetAll(preference.UserId, 0) preferences, err = ss.Preference().GetAll(preference.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preferences") assert.Empty(t, preferences, "should've returned no preferences")
} }
@@ -275,14 +275,14 @@ func testPreferenceDeleteCategory(t *testing.T, ss store.Store) {
err := ss.Preference().Save(model.Preferences{preference1, preference2}) err := ss.Preference().Save(model.Preferences{preference1, preference2})
require.NoError(t, err) require.NoError(t, err)
preferences, err := ss.Preference().GetAll(userId, 0) preferences, err := ss.Preference().GetAll(userId)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, preferences, 2, "should've returned 2 preferences") assert.Len(t, preferences, 2, "should've returned 2 preferences")
err = ss.Preference().DeleteCategory(userId, category) err = ss.Preference().DeleteCategory(userId, category)
require.NoError(t, err) require.NoError(t, err)
preferences, err = ss.Preference().GetAll(userId, 0) preferences, err = ss.Preference().GetAll(userId)
require.NoError(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preferences") assert.Empty(t, preferences, "should've returned no preferences")
} }
@@ -310,22 +310,22 @@ func testPreferenceDeleteCategoryAndName(t *testing.T, ss store.Store) {
err := ss.Preference().Save(model.Preferences{preference1, preference2}) err := ss.Preference().Save(model.Preferences{preference1, preference2})
require.NoError(t, err) require.NoError(t, err)
preferences, err := ss.Preference().GetAll(userId, 0) preferences, err := ss.Preference().GetAll(userId)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference") assert.Len(t, preferences, 1, "should've returned 1 preference")
preferences, err = ss.Preference().GetAll(userId2, 0) preferences, err = ss.Preference().GetAll(userId2)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference") assert.Len(t, preferences, 1, "should've returned 1 preference")
err = ss.Preference().DeleteCategoryAndName(category, name) err = ss.Preference().DeleteCategoryAndName(category, name)
require.NoError(t, err) require.NoError(t, err)
preferences, err = ss.Preference().GetAll(userId, 0) preferences, err = ss.Preference().GetAll(userId)
require.NoError(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preference") assert.Empty(t, preferences, "should've returned no preference")
preferences, err = ss.Preference().GetAll(userId2, 0) preferences, err = ss.Preference().GetAll(userId2)
require.NoError(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preference") assert.Empty(t, preferences, "should've returned no preference")
} }

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

@@ -6256,10 +6256,10 @@ func (s *TimerLayerPreferenceStore) Get(userID string, category string, name str
return result, err return result, err
} }
func (s *TimerLayerPreferenceStore) GetAll(userID string, limit int) (model.Preferences, error) { func (s *TimerLayerPreferenceStore) GetAll(userID string) (model.Preferences, error) {
start := time.Now() start := time.Now()
result, err := s.PreferenceStore.GetAll(userID, limit) result, err := s.PreferenceStore.GetAll(userID)
elapsed := float64(time.Since(start)) / float64(time.Second) elapsed := float64(time.Since(start)) / float64(time.Second)
if s.Root.Metrics != nil { if s.Root.Metrics != nil {