-# Copyright (C) 2014 Ipsilon Project Contributors
-#
-# See the file named COPYING for the project license
+# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING
from ipsilon.util.log import Log
from ipsilon.util.plugin import PluginInstaller, PluginLoader
-from ipsilon.util.plugin import PluginObject, PluginConfig
+from ipsilon.util.plugin import PluginObject
+from ipsilon.util.config import ConfigHelper
-class InfoProviderBase(PluginConfig, PluginObject):
+class InfoProviderBase(ConfigHelper, PluginObject):
def __init__(self, *pargs):
- PluginConfig.__init__(self)
+ ConfigHelper.__init__(self)
PluginObject.__init__(self, *pargs)
def get_user_attrs(self, user):
'gender': 'Gender',
'postcode': 'Postal Code',
'street': 'Street Address',
+ 'city': 'City',
'state': 'State or Province',
'country': 'Country',
'phone': 'Telephone Number',
if item not in plugins.available:
self.debug('Info Plugin %s not found' % item)
continue
- plugins.available[item].enable()
+ try:
+ plugins.available[item].enable()
+ except Exception as e: # pylint: disable=broad-except
+ while item in plugins.enabled:
+ plugins.enabled.remove(item)
+ self.debug("Info Plugin %s couldn't be enabled: %s" % (
+ item, str(e)))
def get_user_attrs(self, user, requested=None):
plugins = self._site[FACILITY].available
def install_args(self, group):
raise NotImplementedError
- def unconfigure(self, opts):
+ def validate_args(self, args):
return
- def configure(self, opts):
+ def unconfigure(self, opts, changes):
+ return
+
+ def configure(self, opts, changes):
raise NotImplementedError