summaryrefslogtreecommitdiffstats
path: root/src/Gui/ABRTPlugin.py
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-10-05 21:42:16 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2009-10-05 21:42:16 +0200
commita47026057cd99a0e1eb34d51ed644cc66ae20bc6 (patch)
tree5a2b250f50aa8239ac98377817410cdae6a267e5 /src/Gui/ABRTPlugin.py
parenta56b047e24bbf96879e77f51867b96d515cdbfa6 (diff)
downloadabrt-a47026057cd99a0e1eb34d51ed644cc66ae20bc6.tar.gz
abrt-a47026057cd99a0e1eb34d51ed644cc66ae20bc6.tar.xz
abrt-a47026057cd99a0e1eb34d51ed644cc66ae20bc6.zip
removed unsecure reading/writting from ~HOME directory
- daemon eunning under root can't read/write from ~HOME, so reading/writting config files have been moved to client (GUI) - uses gnome keyring to store the credentials
Diffstat (limited to 'src/Gui/ABRTPlugin.py')
-rw-r--r--src/Gui/ABRTPlugin.py49
1 files changed, 28 insertions, 21 deletions
diff --git a/src/Gui/ABRTPlugin.py b/src/Gui/ABRTPlugin.py
index 181126af..590a0de1 100644
--- a/src/Gui/ABRTPlugin.py
+++ b/src/Gui/ABRTPlugin.py
@@ -16,27 +16,33 @@ from ConfBackend import ConfBackendGnomeKeyring
class PluginSettings(dict):
def __init__(self):
dict.__init__(self)
- #print "Init plugin settings"
+ self.conf = ConfBackendGnomeKeyring()
- def __init__(self, settings_dict):
- dict.__init__(self)
- for key in settings_dict.keys():
- self[key] = settings_dict[key]
-
def check(self):
- if "Password" in self.keys():
- # password is missing
- if not self["Password"]:
- return False
+ for key in ["Password", "Login"]:
+ if key in self.keys():
+ # some of the required keys is missing
+ if not self[key]:
+ return False
# settings are OK
return True
-
- def load(self, name):
+
+ def load(self, name, default_settings):
print "load:", name
-
+ # load settings from daemon
+ for key in default_settings.keys():
+ self[str(key)] = str(default_settings[key])
+
+ settings = self.conf.load(name)
+ # overwrite defaluts with user setting
+ for key in settings.keys():
+ self[str(key)] = str(settings[key])
+ print str(key), str(settings[key])
+
def save(self, name):
print "save: ", name
-
+ self.conf.save(name, self)
+
class PluginInfo():
"""Class to represent common plugin info"""
types = {"Analyzer":_("Analyzer plugins"),
@@ -57,7 +63,7 @@ class PluginInfo():
self.Type = None
self.Email = None
self.Description = None
- self.Settings = PluginSettings({})
+ self.Settings = PluginSettings()
def getName(self):
return self.Name
@@ -76,12 +82,13 @@ class PluginInfo():
def __getitem__(self, item):
return self.__dict__[item]
-
- def load_settings(self):
+
+ def load_settings(self, default_settings):
if self.Name:
- self.Settings.load(self.Name)
+ print self.Name
+ self.Settings.load(self.Name, default_settings)
else:
- print "plugin name is not set, can't load it's settings"
-
+ print _("Plugin name is not set, can't load it's settings")
+
def save_settings(self):
- self.Settings.save(self.Name)
+ self.Settings.save(str(self.Name))