summaryrefslogtreecommitdiffstats
path: root/ipa_server
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-12-05 15:31:18 -0500
committerRob Crittenden <rcritten@redhat.com>2008-12-10 14:15:19 -0500
commitfc8ac693726ec33b5c0924f9b8ff5d663705a5a3 (patch)
treebd8484d2ebd978a9689ab5f6178a3cd92e124692 /ipa_server
parenta3ab787d23331cf4d060d8463ca66ff602f3629b (diff)
downloadfreeipa-fc8ac693726ec33b5c0924f9b8ff5d663705a5a3.tar.gz
freeipa-fc8ac693726ec33b5c0924f9b8ff5d663705a5a3.tar.xz
freeipa-fc8ac693726ec33b5c0924f9b8ff5d663705a5a3.zip
Port plugins to use the new output_for_cli() argument list
Fix some errors uncovered by the nosetests
Diffstat (limited to 'ipa_server')
-rw-r--r--ipa_server/ipaldap.py10
-rw-r--r--ipa_server/plugins/b_ldap.py8
2 files changed, 13 insertions, 5 deletions
diff --git a/ipa_server/ipaldap.py b/ipa_server/ipaldap.py
index 7cfd6c41..215ef683 100644
--- a/ipa_server/ipaldap.py
+++ b/ipa_server/ipaldap.py
@@ -375,7 +375,7 @@ class IPAdmin(SimpleLDAPObject):
except ldap.ALREADY_EXISTS, e:
raise errors.DuplicateEntry, "Entry already exists"
except ldap.LDAPError, e:
- raise e
+ raise DatabaseError, e
return True
def updateRDN(self, dn, newrdn):
@@ -392,7 +392,7 @@ class IPAdmin(SimpleLDAPObject):
self.set_option(ldap.OPT_SERVER_CONTROLS, sctrl)
self.modrdn_s(dn, newrdn, delold=1)
except ldap.LDAPError, e:
- raise e
+ raise DatabaseError, e
return True
def updateEntry(self,dn,oldentry,newentry):
@@ -474,7 +474,7 @@ class IPAdmin(SimpleLDAPObject):
self.set_option(ldap.OPT_SERVER_CONTROLS, sctrl)
self.modify_s(dn, modlist)
except ldap.LDAPError, e:
- raise e
+ raise DatabaseError, e
return True
def deleteEntry(self,*args):
@@ -486,8 +486,10 @@ class IPAdmin(SimpleLDAPObject):
if sctrl is not None:
self.set_option(ldap.OPT_SERVER_CONTROLS, sctrl)
self.delete_s(*args)
+ except ldap.INSUFFICIENT_ACCESS, e:
+ raise errors.InsufficientAccess, e
except ldap.LDAPError, e:
- raise e
+ raise errors.DatabaseError, e
return True
def modifyPassword(self,dn,oldpass,newpass):
diff --git a/ipa_server/plugins/b_ldap.py b/ipa_server/plugins/b_ldap.py
index 862de1d8..8042474f 100644
--- a/ipa_server/plugins/b_ldap.py
+++ b/ipa_server/plugins/b_ldap.py
@@ -267,12 +267,15 @@ class ldap(CrudBackend):
objectclass = kw.get('objectclass')
sfilter = kw.get('filter')
attributes = kw.get('attributes')
+ base = kw.get('base')
if attributes:
del kw['attributes']
else:
attributes = ['*']
if objectclass:
del kw['objectclass']
+ if base:
+ del kw['base']
if sfilter:
del kw['filter']
(exact_match_filter, partial_match_filter) = self._generate_search_filters(**kw)
@@ -283,7 +286,10 @@ class ldap(CrudBackend):
exact_match_filter = "(%s%s)" % (sfilter, exact_match_filter)
partial_match_filter = "(%s%s)" % (sfilter, partial_match_filter)
- search_base = "%s, %s" % (self.api.env.container_accounts, self.api.env.basedn)
+ if not base:
+ base = self.api.env.container_accounts
+
+ search_base = "%s, %s" % (base, self.api.env.basedn)
try:
exact_results = servercore.search(search_base,
exact_match_filter, attributes)