diff options
author | Rob Crittenden <rcritten@redhat.com> | 2008-10-14 22:22:01 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2008-10-14 22:22:01 -0400 |
commit | cfc8450efd92dc0fb6648e97b27416c67625adfb (patch) | |
tree | 8df315efa8690de696c89172a971b9f8dd9f861c /ipalib | |
parent | 1c3f81852cb8337e2305f968be5bd8165997d27e (diff) | |
download | freeipa-cfc8450efd92dc0fb6648e97b27416c67625adfb.tar.gz freeipa-cfc8450efd92dc0fb6648e97b27416c67625adfb.tar.xz freeipa-cfc8450efd92dc0fb6648e97b27416c67625adfb.zip |
Port user-show to new CrudBackend framework
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/config.py | 3 | ||||
-rw-r--r-- | ipalib/crud.py | 8 | ||||
-rw-r--r-- | ipalib/plugins/b_xmlrpc.py | 2 | ||||
-rw-r--r-- | ipalib/plugins/f_user.py | 31 |
4 files changed, 27 insertions, 17 deletions
diff --git a/ipalib/config.py b/ipalib/config.py index a606a40b1..42bf7787b 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -25,8 +25,11 @@ DEFAULT_CONF='/etc/ipa/ipa.conf' def generate_env(d={}): default = dict( + container_accounts = 'cn=accounts', basedn = 'dc=example,dc=com', container_user = 'cn=users,cn=accounts', + container_group = 'cn=groups,cn=accounts', + container_service = 'cn=services,cn=accounts', domain = LazyProp(get_domain), interactive = True, query_dns = True, diff --git a/ipalib/crud.py b/ipalib/crud.py index 5a60ac8c6..5cd7b0a41 100644 --- a/ipalib/crud.py +++ b/ipalib/crud.py @@ -87,12 +87,14 @@ class CrudBackend(backend.Backend): """ raise NotImplementedError('%s.create()' % self.name) - def retrieve(self, primary_key): + def retrieve(self, primary_key, attributes): """ Retrieve an existing entry. - This method should take a single argument, the primary_key of the - entry in question. + This method should take a two arguments: the primary_key of the + entry in question and a list of the attributes to be retrieved. + If the list of attributes is None then all non-operational + attributes will be returned. If such an entry exists, this method should return a dict representing that entry. If no such entry exists, this method diff --git a/ipalib/plugins/b_xmlrpc.py b/ipalib/plugins/b_xmlrpc.py index 618f8385d..db2af1abd 100644 --- a/ipalib/plugins/b_xmlrpc.py +++ b/ipalib/plugins/b_xmlrpc.py @@ -58,6 +58,6 @@ class xmlrpc(Backend): print "%s: %s" % (code, getattr(err,'__doc__','')) else: raise err - return False + return {} api.register(xmlrpc) diff --git a/ipalib/plugins/f_user.py b/ipalib/plugins/f_user.py index e3ecd2234..1e79c4b8d 100644 --- a/ipalib/plugins/f_user.py +++ b/ipalib/plugins/f_user.py @@ -110,7 +110,7 @@ class user_add(crud.Add): assert 'dn' not in kw ldap = self.api.Backend.ldap kw['uid'] = uid - kw['dn'] = ldap.get_user_dn(uid) + kw['dn'] = ldap.make_user_dn(uid) if servercore.uid_too_long(kw['uid']): raise errors.UsernameTooLong @@ -244,18 +244,23 @@ api.register(user_find) class user_show(crud.Get): 'Examine an existing user.' - def execute(self, *args, **kw): - uid=args[0] - result = servercore.get_user_by_uid(uid, ["*"]) - return result - def forward(self, *args, **kw): - try: - result = super(crud.Get, self).forward(*args, **kw) - if not result: return - for a in result: - print a, ": ", result[a] - except errors.NotFound: - print "User %s not found" % args[0] + def execute(self, uid, **kw): + """ + Execute the user-show operation. + + The dn should not be passed as a keyword argument as it is constructed + by this method. + + Returns the entry + + :param uid: The login name of the user to retrieve. + :param kw: Not used. + """ + ldap = self.api.Backend.ldap + dn = ldap.find_entry_dn("uid", uid, ["*"], "posixAccount") + # FIXME: should kw contain the list of attributes? + return ldap.retrieve(dn) + api.register(user_show) class user_lock(frontend.Command): |