diff options
author | Katja Marttila <katja.marttila@theqtcompany.com> | 2015-10-22 14:18:52 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@theqtcompany.com> | 2015-10-30 12:50:15 +0000 |
commit | ba9d6002fc2acb546d4a61453e2f977c4965bb0e (patch) | |
tree | 041f74d71e516682fdd15ff43c39214e65c33f3b /src/libs/installer/packagemanagercore.cpp | |
parent | d19d8323c67da31247ca90a75ba390856d29e225 (diff) |
Fix crash when updating admin installation with user/temp repository
Grant permission rights for writing maintenance config file
Change-Id: Ib95fc05b80b95ce952b4bcf2395fbb5ed0ef9153
Task-number: QTIFW-740
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Diffstat (limited to 'src/libs/installer/packagemanagercore.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 1f32b9119..89a90d343 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1025,8 +1025,18 @@ void PackageManagerCore::networkSettingsChanged() d->m_repoFetched = false; d->m_updateSourcesAdded = false; - if (isMaintainer()) + if (isMaintainer() ) { + bool gainedAdminRights = false; + QTemporaryFile tempAdminFile(d->targetDir() + QStringLiteral("/XXXXXX")); + if (!tempAdminFile.open() || !tempAdminFile.isWritable()) { + gainAdminRights(); + gainedAdminRights = true; + } d->writeMaintenanceConfigFiles(); + if (gainedAdminRights) + dropAdminRights(); + } + KDUpdater::FileDownloaderFactory::instance().setProxyFactory(proxyFactory()); emit coreNetworkSettingsChanged(); |