SVN commit 1065559 by dafre: And it works great Signed-off-by: Dario Freddi M +2 -0 helper/CMakeLists.txt M +11 -4 helper/polkitkde1helper.cpp M +18 -5 polkitconfig/kcmpolkitconfig.cpp --- trunk/extragear/base/polkit-kde-1/kcmodules/helper/CMakeLists.txt #1065558:1065559 @@ -41,6 +41,8 @@ target_link_libraries(polkitkde1helper ${QT_QTCORE_LIBRARY} ${POLKITQT-1_CORE_LIBRARY}) +install(TARGETS polkitkde1helper DESTINATION ${LIBEXEC_INSTALL_DIR}) + dbus_add_activation_system_service(org.kde.polkitkde1.helper.service.in) install(FILES org.kde.polkitkde1.helper.conf DESTINATION ${SYSCONF_INSTALL_DIR}/dbus-1/system.d) --- trunk/extragear/base/polkit-kde-1/kcmodules/helper/polkitkde1helper.cpp #1065558:1065559 @@ -44,6 +44,7 @@ void PolkitKde1Helper::saveGlobalConfiguration(const QString& adminIdentities, int systemPriority, int policiesPriority) { + qDebug() << "Request to save the global configuration by " << message().service(); PolkitQt1::Authority::Result result; PolkitQt1::SystemBusNameSubject *subject; @@ -52,9 +53,11 @@ result = PolkitQt1::Authority::instance()->checkAuthorizationSync("org.kde.polkitkde1.changesystemconfiguration", subject, PolkitQt1::Authority::AllowUserInteraction); if (result == PolkitQt1::Authority::Yes) { + qDebug() << "Authorized successfully"; // It's ok } else { // It's not ok + qDebug() << "UnAuthorized! " << PolkitQt1::Authority::instance()->lastError(); return; } @@ -65,11 +68,15 @@ kdesettings.setValue("ConfigPriority", systemPriority); kdesettings.setValue("PoliciesPriority", policiesPriority); - QSettings polkitsettings(QString("/etc/polkit-1/localauthority.conf.d/%1-polkitkde.conf").arg(systemPriority), - QSettings::IniFormat); - polkitsettings.beginGroup("Configuration"); - polkitsettings.setValue("AdminIdentities", adminIdentities); + QString contents = QString("[Configuration]\nAdminIdentities=%1\n").arg(adminIdentities); + qDebug() << contents << "will be wrote to the local authority file"; + QFile wfile(QString("/etc/polkit-1/localauthority.conf.d/%1-polkitkde.conf").arg(systemPriority)); + wfile.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text); + wfile.write(contents.toUtf8()); + wfile.flush(); + wfile.close(); + // TODO: Move files around if the priority was changed } --- trunk/extragear/base/polkit-kde-1/kcmodules/polkitconfig/kcmpolkitconfig.cpp #1065558:1065559 @@ -22,6 +22,7 @@ #include #include #include +#include #include "identitywidget.h" #include @@ -109,12 +110,12 @@ } kDebug() << "The highest filename is " << highestFilename; - QSettings policy(highestFilename, QSettings::IniFormat); - kDebug() << policy.allKeys(); - kDebug() << policy.childGroups(); - policy.beginGroup("Configuration"); + QFile policyFile(highestFilename); + policyFile.open(QIODevice::ReadOnly | QIODevice::Text); + QString identities = QString(policyFile.readAll()).split("AdminIdentities=").last(); + identities = identities.split('\n').first(); + policyFile.close(); - QString identities = policy.value("AdminIdentities").toString(); kDebug() << "our identities are " << identities; foreach (const QString &identity, identities.split(';')) { IdentityWidget::IdentityType type; @@ -165,6 +166,18 @@ } kDebug() << "Identities to save: " << identities; + + QDBusMessage message = QDBusMessage::createMethodCall("org.kde.polkitkde1.helper", + "/Helper", + "org.kde.polkitkde1.helper", + QLatin1String("saveGlobalConfiguration")); + QList argumentList; + argumentList << QVariant::fromValue(identities); + argumentList << QVariant::fromValue(m_ui->configPrioritySpin->value()); + argumentList << QVariant::fromValue(m_ui->policyPrioritySpin->value()); + message.setArguments(argumentList); + + QDBusPendingCall reply = QDBusConnection::systemBus().asyncCall(message); } void KCMPolkitConfig::addNewIdentity()