diff options
author | Rob Crittenden <rcritten@redhat.com> | 2007-11-13 15:03:20 -0500 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2007-11-13 15:03:20 -0500 |
commit | eecbaf91e2c9dfd6a24c1d2c8b85c50adcff9d42 (patch) | |
tree | 663be77cf15c53f82f22a6e9f7b9cfe2e72ffe6e /ipa-server/xmlrpc-server | |
parent | 79544637d61336d43f8d42dde4f6aad0d60afb64 (diff) | |
download | freeipa-eecbaf91e2c9dfd6a24c1d2c8b85c50adcff9d42.tar.gz freeipa-eecbaf91e2c9dfd6a24c1d2c8b85c50adcff9d42.tar.xz freeipa-eecbaf91e2c9dfd6a24c1d2c8b85c50adcff9d42.zip |
Use the dna plugin to automatically assign uid
Set gid to the group "ipausers"
Add the user to this default group
Diffstat (limited to 'ipa-server/xmlrpc-server')
-rw-r--r-- | ipa-server/xmlrpc-server/funcs.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index 5ae901ee4..82c84855e 100644 --- a/ipa-server/xmlrpc-server/funcs.py +++ b/ipa-server/xmlrpc-server/funcs.py @@ -426,11 +426,18 @@ class IPAServer: if user.get('gecos') is None: user['gecos'] = user['uid'] - # FIXME: This can be removed once the DS plugin is installed - user['uidnumber'] = '501' + # If uidnumber is blank the the FDS dna_plugin will automatically + # assign the next value. So we don't have to do anything with it. - # FIXME: What is the default group for users? - user['gidnumber'] = '501' + # FIXME: put the default group in a config file + group_dn="cn=%s,%s,%s" % ("ipausers", DefaultGroupContainer, self.basedn) + try: + default_group = self.get_entry_by_dn(group_dn, ['dn','gidNumber'], opts) + if default_group: + user['gidnumber'] = default_group.get('gidnumber') + except ipaerror.exception_for(ipaerror.LDAP_DATABASE_ERROR): + # Fake an LDAP error so we can return something useful to the user + raise ipaerror.gen_exception(ipaerror.LDAP_NOT_FOUND, "No default group for new users can be found.") if user.get('krbprincipalname') is None: user['krbprincipalname'] = "%s@%s" % (user.get('uid'), self.realm) @@ -455,6 +462,7 @@ class IPAServer: conn = self.getConnection(opts) try: res = conn.addEntry(entry) + self.add_user_to_group(user.get('uid'), group_dn, opts) finally: self.releaseConnection(conn) return res @@ -742,9 +750,8 @@ class IPAServer: entry.setValues('objectClass', 'top', 'groupofuniquenames', 'posixGroup', 'inetUser') - # FIXME, need a gidNumber generator - if group.get('gidnumber') is None: - entry.setValues('gidNumber', '501') + # No need to explicitly set gidNumber. The dna_plugin will do this + # for us if the value isn't provided by the user. # fill in our new entry with everything sent by the user for g in group: |