Preferences: Use dashboard uid for the home dashboard (#106666)
This commit is contained in:
@@ -26,10 +26,11 @@ func ProvideService(db db.DB, cfg *setting.Cfg) pref.Service {
|
||||
|
||||
func prefsFromConfig(cfg *setting.Cfg) pref.Preference {
|
||||
return pref.Preference{
|
||||
Theme: cfg.DefaultTheme,
|
||||
Timezone: cfg.DateFormats.DefaultTimezone,
|
||||
WeekStart: &cfg.DateFormats.DefaultWeekStart,
|
||||
HomeDashboardID: 0,
|
||||
Theme: cfg.DefaultTheme,
|
||||
Timezone: cfg.DateFormats.DefaultTimezone,
|
||||
WeekStart: &cfg.DateFormats.DefaultWeekStart,
|
||||
HomeDashboardID: 0, // nolint:staticcheck
|
||||
HomeDashboardUID: "",
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Language: cfg.DefaultLanguage,
|
||||
},
|
||||
@@ -59,9 +60,13 @@ func (s *Service) GetWithDefaults(ctx context.Context, query *pref.GetPreference
|
||||
if p.WeekStart != nil && *p.WeekStart != "" {
|
||||
res.WeekStart = p.WeekStart
|
||||
}
|
||||
// nolint: staticcheck
|
||||
if p.HomeDashboardID != 0 {
|
||||
res.HomeDashboardID = p.HomeDashboardID
|
||||
}
|
||||
if p.HomeDashboardUID != "" {
|
||||
res.HomeDashboardUID = p.HomeDashboardUID
|
||||
}
|
||||
if p.JSONData != nil {
|
||||
if p.JSONData.Language != "" {
|
||||
res.JSONData.Language = p.JSONData.Language
|
||||
@@ -118,9 +123,10 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
|
||||
if err != nil {
|
||||
if errors.Is(err, pref.ErrPrefNotFound) {
|
||||
preference := &pref.Preference{
|
||||
UserID: cmd.UserID,
|
||||
OrgID: cmd.OrgID,
|
||||
TeamID: cmd.TeamID,
|
||||
UserID: cmd.UserID,
|
||||
OrgID: cmd.OrgID,
|
||||
TeamID: cmd.TeamID,
|
||||
// nolint: staticcheck
|
||||
HomeDashboardID: cmd.HomeDashboardID,
|
||||
Timezone: cmd.Timezone,
|
||||
WeekStart: &cmd.WeekStart,
|
||||
@@ -129,6 +135,11 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
|
||||
Updated: time.Now(),
|
||||
JSONData: jsonData,
|
||||
}
|
||||
|
||||
if cmd.HomeDashboardUID != nil {
|
||||
preference.HomeDashboardUID = *cmd.HomeDashboardUID
|
||||
}
|
||||
|
||||
_, err = s.store.Insert(ctx, preference)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -142,7 +153,10 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
|
||||
preference.Theme = cmd.Theme
|
||||
preference.Updated = time.Now()
|
||||
preference.Version += 1
|
||||
preference.HomeDashboardID = cmd.HomeDashboardID
|
||||
preference.HomeDashboardID = cmd.HomeDashboardID // nolint:staticcheck
|
||||
if cmd.HomeDashboardUID != nil {
|
||||
preference.HomeDashboardUID = *cmd.HomeDashboardUID
|
||||
}
|
||||
preference.JSONData = jsonData
|
||||
|
||||
return s.store.Update(ctx, preference)
|
||||
@@ -201,10 +215,15 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
|
||||
}
|
||||
}
|
||||
|
||||
// nolint: staticcheck
|
||||
if cmd.HomeDashboardID != nil {
|
||||
preference.HomeDashboardID = *cmd.HomeDashboardID
|
||||
}
|
||||
|
||||
if cmd.HomeDashboardUID != nil {
|
||||
preference.HomeDashboardUID = *cmd.HomeDashboardUID
|
||||
}
|
||||
|
||||
if cmd.CookiePreferences != nil {
|
||||
cookies, err := parseCookiePreferences(cmd.CookiePreferences)
|
||||
if err != nil {
|
||||
@@ -242,10 +261,11 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
|
||||
|
||||
func (s *Service) GetDefaults() *pref.Preference {
|
||||
return &pref.Preference{
|
||||
Theme: s.defaults.Theme,
|
||||
Timezone: s.defaults.Timezone,
|
||||
WeekStart: s.defaults.WeekStart,
|
||||
HomeDashboardID: 0,
|
||||
Theme: s.defaults.Theme,
|
||||
Timezone: s.defaults.Timezone,
|
||||
WeekStart: s.defaults.WeekStart,
|
||||
HomeDashboardID: 0, // nolint:staticcheck
|
||||
HomeDashboardUID: "",
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Language: s.defaults.JSONData.Language,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user