(c *gin.Context)
| 235 | ) |
| 236 | |
| 237 | func (s *PatchUserSetting) Patch(c *gin.Context) error { |
| 238 | dep := dependency.FromContext(c) |
| 239 | u := inventory.UserFromContext(c) |
| 240 | userClient := dep.UserClient() |
| 241 | saveSetting := false |
| 242 | |
| 243 | if s.Nick != nil { |
| 244 | if _, err := userClient.UpdateNickname(c, u, *s.Nick); err != nil { |
| 245 | return serializer.NewError(serializer.CodeDBError, "Failed to update user nick", err) |
| 246 | } |
| 247 | } |
| 248 | |
| 249 | if s.Language != nil { |
| 250 | u.Settings.Language = *s.Language |
| 251 | saveSetting = true |
| 252 | } |
| 253 | |
| 254 | if s.PreferredTheme != nil { |
| 255 | u.Settings.PreferredTheme = *s.PreferredTheme |
| 256 | saveSetting = true |
| 257 | } |
| 258 | |
| 259 | if s.VersionRetentionEnabled != nil { |
| 260 | u.Settings.VersionRetention = *s.VersionRetentionEnabled |
| 261 | saveSetting = true |
| 262 | } |
| 263 | |
| 264 | if s.VersionRetentionExt != nil { |
| 265 | u.Settings.VersionRetentionExt = *s.VersionRetentionExt |
| 266 | saveSetting = true |
| 267 | } |
| 268 | |
| 269 | if s.VersionRetentionMax != nil { |
| 270 | u.Settings.VersionRetentionMax = *s.VersionRetentionMax |
| 271 | saveSetting = true |
| 272 | } |
| 273 | |
| 274 | if s.DisableViewSync != nil { |
| 275 | u.Settings.DisableViewSync = *s.DisableViewSync |
| 276 | saveSetting = true |
| 277 | } |
| 278 | |
| 279 | if s.ShareLinksInProfile != nil { |
| 280 | u.Settings.ShareLinksInProfile = types.ShareLinksInProfileLevel(*s.ShareLinksInProfile) |
| 281 | saveSetting = true |
| 282 | } |
| 283 | |
| 284 | if s.CurrentPassword != nil && s.NewPassword != nil { |
| 285 | if err := auth.CheckScope(c, types.ScopeUserSecurityInfoWrite); err != nil { |
| 286 | return err |
| 287 | } |
| 288 | |
| 289 | if err := inventory.CheckPassword(u, *s.CurrentPassword); err != nil { |
| 290 | return serializer.NewError(serializer.CodeIncorrectPassword, "Incorrect password", err) |
| 291 | } |
| 292 | |
| 293 | if _, err := userClient.UpdatePassword(c, u, *s.NewPassword); err != nil { |
| 294 | return serializer.NewError(serializer.CodeDBError, "Failed to update user password", err) |
nothing calls this directly
no test coverage detected