diff options
author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-10-05 21:42:16 +0200 |
---|---|---|
committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-10-05 21:42:16 +0200 |
commit | a47026057cd99a0e1eb34d51ed644cc66ae20bc6 (patch) | |
tree | 5a2b250f50aa8239ac98377817410cdae6a267e5 /src/Gui/ABRTPlugin.py | |
parent | a56b047e24bbf96879e77f51867b96d515cdbfa6 (diff) | |
download | abrt-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.py | 49 |
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)) |