Skip to content

Add system-wide policies to disable update checks with UI indicators#3313

Draft
Copilot wants to merge 8 commits intomainfrom
copilot/disable-update-check-all-users
Draft

Add system-wide policies to disable update checks with UI indicators#3313
Copilot wants to merge 8 commits intomainfrom
copilot/disable-update-check-all-users

Conversation

Copy link
Contributor

Copilot AI commented Feb 1, 2026

Changes proposed in this pull request

  • Adds PolicyManager and PolicyInfo classes to load system-wide policies from config.json in the application directory
  • System-wide policies override user settings when present
  • Implements Update_DisableUpdateCheck option to disable update checks for all users on a machine
  • Integrates into existing SettingsManager.Load() flow
  • Includes config.json.example file as part of installation/default files with usage instructions
  • Named PolicyManager/PolicyInfo to avoid naming conflicts with existing ConfigurationManager class
  • UI automatically disables "Check for updates at startup" toggle when managed by system-wide policy
  • Displays localized administrator message with shield icon when setting is policy-managed
  • Fully supports internationalization via resource strings

Related issue(s)

Related to enterprise deployment requirements for centralized update control.

Copilot generated summary

Copilot summary

Implements a system-wide policy mechanism similar to Firefox's logprefs pattern. When config.json exists in the application directory with "Update_DisableUpdateCheck": true, all users on that machine will have update checks disabled regardless of their personal settings.

Architecture:

  • PolicyManager.Load() runs before user settings load
  • SettingsManager.ShouldCheckForUpdatesAtStartup property checks system-wide policies first, then falls back to user preference
  • Classes named PolicyManager/PolicyInfo to avoid confusion with existing ConfigurationManager

User Experience:

  • The config.json.example file is included in the installation directory with usage instructions
  • When a policy is active, the update check toggle in Settings > Update is automatically disabled
  • A localized warning message "This setting is managed by your administrator" appears with an orange shield icon
  • Icon improves accessibility for users with color vision deficiencies

Usage:
Administrators can place a config.json file in the application installation directory:

{
  "Update_DisableUpdateCheck": true
}

Files Modified:

  • New: PolicyInfo.cs, PolicyManager.cs - Policy model and loader
  • Modified: SettingsManager.cs - Integrated policy loading, added precedence logic
  • Modified: MainWindow.xaml.cs - Updated to respect system-wide policies
  • Modified: SettingsUpdateViewModel.cs - Added policy detection property
  • Modified: SettingsUpdateView.xaml - UI updates for policy-managed settings
  • Modified: NETworkManager.csproj - Include config.json.example in build output
  • Modified: Strings.resx, Strings.Designer.cs - Added localization string
  • New: Documentation and example configuration file

To-Do

Contributing

By submitting this pull request, I confirm the following:

Original prompt

This section details on the original issue you should resolve

<issue_title>Disable Update check for all users</issue_title>
<issue_description>Hi Team,

We are in testing process to deploy NETworkManager on multiple machines and need to disable auto update without user intervention.
Test environment is windows 11 virtual machines.

There is option to disable update during startup when we launch the application but that is user specific. Is there any way to disable autoupdate for all users like HKLM registry key,any file at program files or MSI parameter like AUTOUPDATE=0 which we can change, and this setting will be applicable for everyone who can login to that machine.</issue_description>

<agent_instructions>I want to implement something similar to the logpref feature from firefox. I config.json file in the app folder, that will disable the update check. It should be similar to the SettingsManager/SettingsInfo i already have implemented. The file should be loaded when loading the settingsmanager.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@BornToBeRoot Hi, is this currently not supported. There is currently no implementation to control settings via Registry, File, etc.

There is a feature request that my need a similar implementation via registry. #3208 #2787

For now this is just an update check and not an auto update. If you click on the update button... you will be redirected to the download page.</comment_new>


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits February 1, 2026 20:35
Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Copilot AI changed the title [WIP] Disable update check for all users in application Add system-wide configuration to disable update checks Feb 1, 2026
Copilot AI requested a review from BornToBeRoot February 1, 2026 20:40
@BornToBeRoot
Copy link
Owner

@copilot could the naming conflict with the existing ConfigurationManager?

Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 1, 2026

@copilot could the naming conflict with the existing ConfigurationManager?

Good catch! I've renamed ConfigManager to PolicyManager and ConfigInfo to PolicyInfo to avoid confusion with the existing ConfigurationManager. The new names better reflect that these are system-wide policies that override user settings. Fixed in commit 36e595c.

Copilot AI changed the title Add system-wide configuration to disable update checks Add system-wide policies to disable update checks Feb 1, 2026
@BornToBeRoot
Copy link
Owner

@copilot

  1. Make the example config part of the installation/default files
  2. Can we disable the setting in the settingsmanager/view and show a note that it's managed by the administrator?

Copilot AI and others added 3 commits February 7, 2026 23:45
…tings

Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Co-authored-by: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 7, 2026

@copilot

  1. Make the example config part of the installation/default files
    ...

Both requests implemented:

  1. config.json.example in installation (commit 506e6bf): The example file is now included in the NETworkManager.csproj and will be copied to the output directory during build. Added usage instructions directly in the file.

  2. UI updates for policy-managed settings (commits 506e6bf, 1b12a86, 9ed5c23):

    • Toggle switch is automatically disabled when the setting is managed by policy
    • Added localized message "This setting is managed by your administrator" with shield icon (orange) that appears below the toggle
    • Icon improves accessibility for users with color vision deficiencies
    • Property IsUpdateCheckManagedByPolicy in ViewModel detects when policy is active

The UI clearly indicates to users when their update check setting is controlled by system policy.

Copilot AI changed the title Add system-wide policies to disable update checks Add system-wide policies to disable update checks with UI indicators Feb 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Disable Update check for all users

2 participants