diff options
-rw-r--r-- | ipa-admintools/ipa-adduser | 17 | ||||
-rw-r--r-- | ipa-python/ipaclient.py | 29 | ||||
-rw-r--r-- | ipa-python/user.py | 2 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/controllers.py | 12 |
4 files changed, 32 insertions, 28 deletions
diff --git a/ipa-admintools/ipa-adduser b/ipa-admintools/ipa-adduser index f31a335f0..d2969036d 100644 --- a/ipa-admintools/ipa-adduser +++ b/ipa-admintools/ipa-adduser @@ -21,6 +21,7 @@ import sys from optparse import OptionParser import ipa +import ipa.user import ipa.ipaclient as ipaclient import ipa.config @@ -56,23 +57,23 @@ def parse_options(): return options, args def main(): - user=ldap.cidict.cidict() + user=ipa.user.User() options, args = parse_options() if len(args) != 2: usage() - user['givenname'] = options.gn - user['sn'] = options.sn - user['uid'] = args[1] + user.setValue('givenname', options.gn) + user.setValue('sn', options.sn) + user.setValue('uid', args[1]) if options.gecos: - user['gecos'] = options.gecos + user.setValue('gecos', options.gecos) if options.directory: - user['homedirectory'] = options.directory + user.setValue('homedirectory', options.directory) if options.shell: - user['loginshell'] = options.shell + user.setValue('loginshell', options.shell) else: - user['loginshell'] = "/bin/bash" + user.setValue('loginshell', "/bin/bash") try: client = ipaclient.IPAClient() diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index 729189997..44c61c6ae 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -61,30 +61,33 @@ class IPAClient: return user.User(result) def add_user(self,user): - """Add a user. user is a cidict() of attribute/value pairs""" + """Add a user. user is a ipa.user object""" realm = config.config.get_realm() # FIXME: This should be dynamic and can include just about anything # Let us add in some missing attributes - if user.get('homedirectory') is None: - user['homedirectory'] ='/home/%s' % user['uid'] - if user.get('gecos') is None: - user['gecos'] = user['uid'] + if user.getValue('homedirectory') is None: + user.setValue('homedirectory', '/home/%s' % user.getValue('uid')) + if user.getValue('gecos') is None: + user.setValue('gecos', user.getValue('uid')) # FIXME: This can be removed once the DS plugin is installed - user['uidnumber'] ='501' + user.setValue('uidnumber', '501') # FIXME: What is the default group for users? - user['gidnumber'] ='501' - user['krbprincipalname'] = "%s@%s" % (user['uid'], realm) - user['cn'] = "%s %s" % (user['givenname'], user['sn']) - if user.get('gn'): - del user['gn'] + user.setValue('gidnumber', '501') + user.setValue('krbprincipalname', "%s@%s" % (user.getValue('uid'), realm)) + user.setValue('cn', "%s %s" % (user.getValue('givenname'), + user.getValue('sn'))) + user_dict = user.toDict() + if user_dict.get('gn'): + del user_dict['gn'] + + del user_dict['dn'] # convert to a regular dict before sending - dict_user = cidict_to_dict(user) - result = self.transport.add_user(dict_user) + result = self.transport.add_user(user_dict) return result def get_all_users(self): diff --git a/ipa-python/user.py b/ipa-python/user.py index 4377dad9b..dd0afb578 100644 --- a/ipa-python/user.py +++ b/ipa-python/user.py @@ -25,7 +25,7 @@ class User: data - cidict - case insensitive dict of the attributes and values orig_data - cidict - case insentiive dict of the original attributes and values""" - def __init__(self,entrydata): + def __init__(self,entrydata=None): """data is the raw data returned from the python-ldap result method, which is a search result entry or a reference or None. If creating a new empty entry, data is the string DN.""" diff --git a/ipa-server/ipa-gui/ipagui/controllers.py b/ipa-server/ipa-gui/ipagui/controllers.py index 1377eabc7..b716aeee0 100644 --- a/ipa-server/ipa-gui/ipagui/controllers.py +++ b/ipa-server/ipa-gui/ipagui/controllers.py @@ -70,12 +70,12 @@ class Root(controllers.RootController): return dict(form=user_new_form, tg_template='ipagui.templates.usernew') try: - new_user = {} - new_user['uid'] = utf8_encode(kw.get('uid')) - new_user['givenname'] = utf8_encode(kw.get('givenname')) - new_user['sn'] = utf8_encode(kw.get('sn')) - new_user['mail'] = utf8_encode(kw.get('mail')) - new_user['telephonenumber'] = utf8_encode(kw.get('telephonenumber')) + new_user = ipa.user.User() + new_user.setValue('uid', kw.get('uid')) + new_user.setValue('givenname', kw.get('givenname')) + new_user.setValue('sn', kw.get('sn')) + new_user.setValue('mail', kw.get('mail')) + new_user.setValue('telephonenumber', kw.get('telephonenumber')) rv = client.add_user(new_user) turbogears.flash("%s added!" % kw['uid']) |