diff options
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 81fd29472..e008a220d 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1025,8 +1025,17 @@ void PackageManagerCore::networkSettingsChanged() d->m_repoFetched = false; d->m_updateSourcesAdded = false; - if (d->isUpdater() || d->isPackageManager()) + if (d->isUpdater() || d->isPackageManager()) { + 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(); |