Work in progress on privileged configs
svn path=/trunk/KDE/kdelibs/; revision=1019140
This commit is contained in:
parent
95474bf0a5
commit
d7e35305bb
@ -47,6 +47,7 @@
|
||||
#include <kurl.h>
|
||||
#include <kwallet.h>
|
||||
#include <kconfiggroup.h>
|
||||
#include <kauthaction.h>
|
||||
#include <kstandarddirs.h>
|
||||
|
||||
namespace Plasma
|
||||
@ -132,8 +133,7 @@ AuthorizationManagerPrivate::AuthorizationManagerPrivate(AuthorizationManager *m
|
||||
authorizationPolicy(AuthorizationManager::DenyAll),
|
||||
authorizationInterface(new DenyAllAuthorization()),
|
||||
customAuthorizationInterface(0),
|
||||
identitiesConfig(KSharedConfig::openConfig("plasma-identityrc")->group("Identitites")),
|
||||
rulesConfig(KSharedConfig::openConfig("plasma-rulesrc")->group("Rules")),
|
||||
rulesConfig(KSharedConfig::openConfig("/etc/plasma-remotewidgets.conf")->group("Rules")),
|
||||
locked(false)
|
||||
{
|
||||
wallet = KWallet::Wallet::openWallet("Plasma", 0, KWallet::Wallet::Asynchronous);
|
||||
@ -167,17 +167,6 @@ AuthorizationManagerPrivate::AuthorizationManagerPrivate(AuthorizationManager *m
|
||||
|
||||
AuthorizationManagerPrivate::~AuthorizationManagerPrivate()
|
||||
{
|
||||
int i = 0;
|
||||
foreach (AuthorizationRule *rule, rules) {
|
||||
kDebug() << "adding rule " << i;
|
||||
rulesConfig.group(QString::number(i)).writeEntry("CredentialsID", rule->credentials().id());
|
||||
rulesConfig.group(QString::number(i)).writeEntry("serviceName", rule->serviceName());
|
||||
rulesConfig.group(QString::number(i)).writeEntry("Policy", (uint)rule->policy());
|
||||
rulesConfig.group(QString::number(i)).writeEntry("Targets", (uint)rule->targets());
|
||||
rulesConfig.group(QString::number(i)).writeEntry("Persistence", (uint)rule->persistence());
|
||||
i++;
|
||||
}
|
||||
rulesConfig.sync();
|
||||
|
||||
delete authorizationInterface;
|
||||
delete customAuthorizationInterface;
|
||||
@ -185,6 +174,37 @@ AuthorizationManagerPrivate::~AuthorizationManagerPrivate()
|
||||
delete wallet;
|
||||
}
|
||||
|
||||
void AuthorizationManagerPrivate::saveRules()
|
||||
{
|
||||
KTemporaryFile tempFile;
|
||||
tempFile.open();
|
||||
KConfigGroup rulesGroup = KSharedConfig::openConfig(tempFile.fileName())->group("Rules");
|
||||
|
||||
int i = 0;
|
||||
foreach (AuthorizationRule *rule, rules) {
|
||||
if (rule->persistence() == AuthorizationRule::Persistence) {
|
||||
kDebug() << "adding rule " << i;
|
||||
rulesGroup.group(QString::number(i)).writeEntry("CredentialsID", rule->credentials().id());
|
||||
rulesGroup.group(QString::number(i)).writeEntry("serviceName", rule->serviceName());
|
||||
rulesGroup.group(QString::number(i)).writeEntry("Policy", (uint)rule->policy());
|
||||
rulesGroup.group(QString::number(i)).writeEntry("Targets", (uint)rule->targets());
|
||||
rulesGroup.group(QString::number(i)).writeEntry("Persistence", (uint)rule->persistence());
|
||||
i++;
|
||||
}
|
||||
}
|
||||
rulesGroup.sync();
|
||||
tempFile.close();
|
||||
|
||||
KAuth::Action action("org.kde.kcontrol.kcmremotewidgets.save");
|
||||
action.addArgument("source", tempFile.fileName());
|
||||
action.addArgument("filename", "/etc/plasma-remotewidgets.conf");
|
||||
KAuth::ActionReply reply = action.execute();
|
||||
|
||||
if (reply.failed()) {
|
||||
kDebug() << "KAuth failed.... YOU SUCK!";
|
||||
}
|
||||
}
|
||||
|
||||
void AuthorizationManagerPrivate::slotWalletOpened()
|
||||
{
|
||||
QByteArray identity;
|
||||
|
Loading…
x
Reference in New Issue
Block a user