diff options
author | Tobias Markmann <tm@ayena.de> | 2017-04-26 14:47:38 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2017-05-02 10:21:26 (GMT) |
commit | 29ad7d96951a43af0aa51b769a21c624c5b24c97 (patch) | |
tree | d9c21fe1fa71e44ca2c7e69ddd2de3024f466a58 /SwifTools/AutoUpdater/AutoUpdater.h | |
parent | f932894082acc07549f8a0ed2b68ddd18036a220 (diff) | |
download | swift-29ad7d96951a43af0aa51b769a21c624c5b24c97.zip swift-29ad7d96951a43af0aa51b769a21c624c5b24c97.tar.bz2 |
If silent Sparkle update impossible do not auto download updates
With this change, Swift will check at the start if it has
sufficient permissions to write to the location where
Swift is currently installed and also check if it can change
permissions of a temporary file to the permissions of the
current Swift installation.
This should prevent an authentication dialog on the exit of
Swift which does not leave a single clue to what application
the dialog belongs to.
Test-Information:
Verified that the log output indicates a possible silent update
for admin users and the impossibility of a silent update
for non-admin users and a Swift installed to /Applications
folder.
All unit tests pass on macOS 10.12.4 with Qt 5.4.2.
Change-Id: I5f03358ac67630565b3c624da157b1eeea14356d
Diffstat (limited to 'SwifTools/AutoUpdater/AutoUpdater.h')
-rw-r--r-- | SwifTools/AutoUpdater/AutoUpdater.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/SwifTools/AutoUpdater/AutoUpdater.h b/SwifTools/AutoUpdater/AutoUpdater.h index a125229..fdd3a91 100644 --- a/SwifTools/AutoUpdater/AutoUpdater.h +++ b/SwifTools/AutoUpdater/AutoUpdater.h @@ -1,40 +1,41 @@ /* * Copyright (c) 2010-2017 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include <string> #include <boost/signals2.hpp> namespace Swift { class AutoUpdater { public: enum class State { NotCheckedForUpdatesYet, NoUpdateAvailable, CheckingForUpdate, ErrorCheckingForUpdate, DownloadingUpdate, RestartToInstallUpdate }; public: virtual ~AutoUpdater(); virtual void setAppcastFeed(const std::string& appcastFeed) = 0; virtual void checkForUpdates() = 0; virtual State getCurrentState() = 0; + virtual bool applicationInstallationLocationWritable() = 0; public: /** * Emit this signal if a new version of the software has been downloaded * and the user needs to be notified so they can quit the app and start * the newer version. */ boost::signals2::signal<void(State)> onUpdateStateChanged; }; } |