Use posixAccount instead of person to identify users

Add output_for_cli to service-find
This commit is contained in:
Rob Crittenden 2008-10-24 11:40:47 -04:00
parent 6a8026f974
commit 8788afe184
4 changed files with 11 additions and 5 deletions

View File

@ -88,7 +88,7 @@ class ldap(CrudBackend):
attribute = attribute.lower()
object_type = None
if attribute == "uid": # User
object_type = "person"
object_type = "posixAccount"
elif attribute == "cn": # Group
object_type = "posixGroup"
elif attribute == "krbprincipalname": # Service

View File

@ -168,7 +168,7 @@ def get_user_by_uid(uid, sattrs):
"""Get a specific user's entry."""
# FIXME: should accept a container to look in
# uid = self.__safe_filter(uid)
searchfilter = "(&(uid=%s)(objectclass=person))" % uid
searchfilter = "(&(uid=%s)(objectclass=posixAccount))" % uid
return get_sub_entry("cn=accounts," + api.env.basedn, searchfilter, sattrs)

View File

@ -60,7 +60,7 @@ class passwd(frontend.Command):
else:
principal = principal
dn = ldap.find_entry_dn("krbprincipalname", principal, "person")
dn = ldap.find_entry_dn("krbprincipalname", principal, "posixAccount")
# FIXME: we need a way to prompt for passwords using getpass
kw['newpass'] = "password"

View File

@ -110,7 +110,7 @@ class service_add(crud.Add):
def output_to_cli(self, ret):
if ret:
print "Service added"
print "Service added"
api.register(service_add)
@ -146,7 +146,7 @@ class service_find(crud.Find):
def execute(self, principal, **kw):
ldap = self.api.Backend.ldap
kw['filter'] = "&(objectclass=krbPrincipalAux)(!(objectClass=person))(!(|(krbprincipalname=kadmin/*)(krbprincipalname=K/M@*)(krbprincipalname=krbtgt/*)))"
kw['filter'] = "&(objectclass=krbPrincipalAux)(!(objectClass=posixAccount))(!(|(krbprincipalname=kadmin/*)(krbprincipalname=K/M@*)(krbprincipalname=krbtgt/*)))"
kw['krbprincipalname'] = principal
object_type = ldap.get_object_type("krbprincipalname")
@ -193,5 +193,11 @@ class service_show(crud.Get):
dn = ldap.find_entry_dn("krbprincipalname", principal)
# FIXME: should kw contain the list of attributes to display?
return ldap.retrieve(dn)
def output_for_cli(self, service):
if not service:
return
for a in service.keys():
print "%s: %s" % (a, service[a])
api.register(service_show)