Warn before installing or updating if connected as follower (#18481)
Closes #18455
Summary of the issue:
When installing or updating NVDA, if the computer is being operated via
NVDA Remote Access, the user will lose access because the secure copy of
NVDA will not connect to unknown executables.
Description of user facing changes:
The launcher warns the user before installing or updating NVDA if Remote
Access is connected as a follower, unless it is running as
administrator, in which case we should not encounter UAC.
NVDA warns the user before installing an update from the update check UI
or via the exit dialog.
In all cases, the user is discouraged from proceding, and the default
response is to not continue with the installation.
Description of developer facing changes:
None
Description of development approach:
Check if connected as follower and not admin before installing from the
launcher.
Check if connected as follower in update checker and exit dialog (when
the exit action is to update).
All checks implemented as functions that return `True` if we should
procede (there is no blocker, or the user has chosen to continue), or
`False` if there is a blocker and the user has not chosen to continue.
Functions with checks return early if the check function returns
`False`.
Testing strategy:
Built launcher and tried to install while not connected, or connected as
follower.
Ran from source and manually envoked the installer GUI and attempted to
install when connected as follower or not connected.
Spoofed versions and attempted updating when connected as follower and
not connected.
Known issues with pull request:
This problem is not unique to NVDA updates. If the user encounters a UAC
prompt while connected as follower and is running portably or has not
enabled Remote Access on secure screens, they will be stuck in the same
way as this PR warns against. However, there is nothing we can do in
these cases, as we cannot control whether UAC appears or not.