From a9a6b62cf2abb833d54c60aa1363e5acfc3cdfd5 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Mon, 9 Jun 2008 15:26:56 +0000 Subject: Check properly whether a certain dn exists in storage, must have at least one attribute --- Makefile | 28 ++++++++++++++++++++++++++++ Pivot.py | 4 +++- files/slapd-pivot.conf.sample | 17 +++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Makefile create mode 100644 files/slapd-pivot.conf.sample diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ced020b --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +VERSION = 0.0.1 +PREFIX = /usr/local + +FILES = \ + Backend.py \ + Config.py \ + Pivot.py \ + slapd-pivot.py \ + Makefile + +SUBDIRS = \ + files + +all: + @echo "usage: make install" + @echo " make dist [PREFIX=/path]" + +dist: + tar -jcvf slapd-pivot-$(VERSION).tbz \ + --exclude '*.pyc' --exclude 'test' --exclude '*.tbz' \ + --exclude '*.tar.bz2' --exclude '\.*' \ + $(FILES) $(SUBDIRS) + +install: + chmod +x slapd-pivot.py + cp files/slapd-pivot.conf.sample $(PREFIX)/etc/slapd-pivot.conf.sample + ln -sf `pwd`/slapd-pivot.py $(PREFIX)/sbin/slapd-pivot + diff --git a/Pivot.py b/Pivot.py index 5f02d92..1a27826 100644 --- a/Pivot.py +++ b/Pivot.py @@ -142,7 +142,9 @@ class Storage: return self.entries.keys()[:] # copy def exists(self, dn): - return dn in self.entries.keys() + if not self.entries.has_key("dn"): + return False + return len(self.entries["dn"]) > 0 def delete(self, dn): if self.entries.has_key(dn): diff --git a/files/slapd-pivot.conf.sample b/files/slapd-pivot.conf.sample new file mode 100644 index 0000000..6ecd263 --- /dev/null +++ b/files/slapd-pivot.conf.sample @@ -0,0 +1,17 @@ + +[main] + +ref-attribute: member +key-attribute: uid +tag-attribute: memberOf +rdn-attribute: cn +ref-objectclass: group +access-attribute: access + +storage-file = /var/db/pivot.ldif + +ldap-base: dc=fam +ldap-root: cn=root,dc=fam +ldap-password: barn +ldap-host: ldap://localhost:3890 + -- cgit v1.2.3