mirror of
https://github.com/safing/portmaster
synced 2025-09-04 11:39:29 +00:00
Allow manual updates even if automatic ones are disabled
This commit is contained in:
parent
857eb83659
commit
e40e6292f5
3 changed files with 24 additions and 17 deletions
|
@ -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
|
||||||
|
|
|
@ -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: ¬ifications.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: ¬ifications.ActionTypeOpenSettingPayload{
|
|
||||||
Key: enableUpdatesKey,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
).AttachToModule(module)
|
|
||||||
log.Warningf("updates: automatic updates are now disabled")
|
log.Warningf("updates: automatic updates are now disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Add table
Reference in a new issue