Allow manual updates even if automatic ones are disabled

This commit is contained in:
Patrick Pacher 2021-05-17 14:59:20 +02:00
parent 857eb83659
commit e40e6292f5
No known key found for this signature in database
GPG key ID: E8CD2DA160925A6D
3 changed files with 24 additions and 17 deletions

View file

@ -14,7 +14,7 @@ func registerAPIEndpoints() error {
Write: api.PermitUser, Write: api.PermitUser,
BelongsTo: module, BelongsTo: module,
ActionFunc: func(_ *api.Request) (msg string, err error) { ActionFunc: func(_ *api.Request) (msg string, err error) {
if err := TriggerUpdate(); err != nil { if err := TriggerUpdate(true); err != nil {
return "", err return "", err
} }
return "triggered update check", nil return "triggered update check", nil

View file

@ -86,6 +86,21 @@ func initConfig() {
previousDevMode = devMode() previousDevMode = devMode()
} }
func createWarningNotification() {
notifications.NotifyWarn(
updatesDisabledNotificationID,
"Automatic Updates Disabled",
"Automatic updates are disabled through configuration. Please note that this is potentially dangerous, as this also affects security updates as well as the filter lists and threat intelligence feeds.",
notifications.Action{
Text: "Change",
Type: notifications.ActionTypeOpenSetting,
Payload: &notifications.ActionTypeOpenSettingPayload{
Key: enableUpdatesKey,
},
},
).AttachToModule(module)
}
func updateRegistryConfig(_ context.Context, _ interface{}) error { func updateRegistryConfig(_ context.Context, _ interface{}) error {
changed := false changed := false
@ -112,24 +127,12 @@ func updateRegistryConfig(_ context.Context, _ interface{}) error {
if updatesCurrentlyEnabled { if updatesCurrentlyEnabled {
module.Resolve("") module.Resolve("")
if err := TriggerUpdate(); err != nil { if err := TriggerUpdate(false); err != nil {
log.Warningf("updates: failed to trigger update: %s", err) log.Warningf("updates: failed to trigger update: %s", err)
} }
log.Infof("updates: automatic updates are now enabled") log.Infof("updates: automatic updates are now enabled")
} else { } else {
notifications.NotifyWarn( createWarningNotification()
updatesDisabledNotificationID,
"Automatic Updates Disabled",
"Automatic updates are disabled through configuration. Please note that this is potentially dangerous, as this also affects security updates as well as the filter lists and threat intelligence feeds.",
notifications.Action{
ID: "change",
Text: "Change",
Type: notifications.ActionTypeOpenSetting,
Payload: &notifications.ActionTypeOpenSettingPayload{
Key: enableUpdatesKey,
},
},
).AttachToModule(module)
log.Warningf("updates: automatic updates are now disabled") log.Warningf("updates: automatic updates are now disabled")
} }
} }

View file

@ -195,6 +195,10 @@ func start() error {
registry.SelectVersions() registry.SelectVersions()
module.TriggerEvent(VersionUpdateEvent, nil) module.TriggerEvent(VersionUpdateEvent, nil)
if !updatesCurrentlyEnabled {
createWarningNotification()
}
// Initialize the version export - this requires the registry to be set up. // Initialize the version export - this requires the registry to be set up.
err = initVersionExport() err = initVersionExport()
if err != nil { if err != nil {
@ -228,7 +232,7 @@ func start() error {
} }
// TriggerUpdate queues the update task to execute ASAP. // TriggerUpdate queues the update task to execute ASAP.
func TriggerUpdate() error { func TriggerUpdate(force bool) error {
switch { switch {
case !module.OnlineSoon(): case !module.OnlineSoon():
return fmt.Errorf("updates module is disabled") return fmt.Errorf("updates module is disabled")
@ -236,7 +240,7 @@ func TriggerUpdate() error {
case !module.Online(): case !module.Online():
updateASAP = true updateASAP = true
case !enableUpdates(): case !force && !enableUpdates():
return fmt.Errorf("automatic updating is disabled") return fmt.Errorf("automatic updating is disabled")
default: default: