MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / Update

Method Update

core/app/service/setting.go:161–240  ·  view source on GitHub ↗
(c *gin.Context, key, value string)

Source from the content-addressed store, hash-verified

159}
160
161func (u *SettingService) Update(c *gin.Context, key, value string) error {
162 oldVal, err := settingRepo.Get(repo.WithByKey(key))
163 if err != nil {
164 return err
165 }
166 if oldVal.Value == value {
167 return nil
168 }
169 sessionLifeTime := 0
170 switch key {
171 case "SessionTimeout":
172 sessionLifeTime, err = strconv.Atoi(value)
173 if err != nil {
174 return err
175 }
176 case "AppStoreLastModified":
177 exist, _ := settingRepo.Get(repo.WithByKey("AppStoreLastModified"))
178 if exist.ID == 0 {
179 _ = settingRepo.Create("AppStoreLastModified", value)
180 return nil
181 }
182 case "HideMenu":
183 var menus []dto.ShowMenu
184 if err := json.Unmarshal([]byte(value), &menus); err != nil {
185 return err
186 }
187 for i := 0; i < len(menus); i++ {
188 if menus[i].Label == "Home-Menu" || menus[i].Label == "App-Menu" || menus[i].Label == "Setting-Menu" {
189 menus[i].IsShow = true
190 }
191 }
192 menuItem, err := json.Marshal(&menus)
193 if err != nil {
194 return err
195 }
196 value = string(menuItem)
197 }
198
199 if err := settingRepo.Update(key, value); err != nil {
200 return err
201 }
202 if key == "ExpirationDays" {
203 if err := xpack.AuthProvider.SyncPasswordExpirationTime(value); err != nil {
204 return err
205 }
206 }
207 if key == "SessionTimeout" {
208 global.SESSION.ApplyTimeout(sessionLifeTime)
209 }
210
211 switch key {
212 case "BindDomain":
213 if len(value) != 0 {
214 _ = global.SESSION.Clean()
215 }
216 if err := u.clearPasskeySettings(); err != nil {
217 return err
218 }

Callers

nothing calls this directly

Calls 11

clearPasskeySettingsMethod · 0.95
dropBackupCopiesFunction · 0.85
StartSyncFunction · 0.85
ApplyTimeoutMethod · 0.80
GetMethod · 0.65
WithByKeyMethod · 0.65
CreateMethod · 0.65
UpdateMethod · 0.65
CleanMethod · 0.65
SyncMethod · 0.65

Tested by

no test coverage detected