3 # Copyright (C) 2014 Ipsilon Project Contributors
5 # See the file named COPYING for the project license
7 from ipsilon.info.common import InfoProviderBase
8 from ipsilon.info.common import InfoProviderInstaller
9 from ipsilon.util.plugin import PluginObject
13 class InfoProvider(InfoProviderBase):
16 super(InfoProvider, self).__init__()
19 def get_user_attrs(self, user):
22 p = pwd.getpwnam(user)
23 userattrs = {'uidNumber': p[2], 'gidNumber': p[3],
24 'gecos': p[4], 'homeDirectory': p[5],
32 class Installer(InfoProviderInstaller):
35 super(Installer, self).__init__()
38 def install_args(self, group):
39 group.add_argument('--info-nss', choices=['yes', 'no'], default='no',
40 help='Use passwd data to populate user attrs')
42 def configure(self, opts):
43 if opts['info_nss'] != 'yes':
46 # Add configuration data to database
50 po.wipe_config_values(self.facility)
52 # Replace global config, only one plugin info can be used
54 globalconf = po.get_plugin_config(self.facility)
55 if 'order' in globalconf:
56 order = globalconf['order'].split(',')
60 globalconf['order'] = ','.join(order)
61 po.set_config(globalconf)
62 po.save_plugin_config(self.facility)