which slapcat > /dev/null || return
+ldap_next_number() {
+ local attr=${1:-uidNumber}
+ local max=$(
+ slapcat -o ldif-wrap=999 -a "(&($attr=*))" | grep "^$attr:" | sed 's/^[^:]\+: //' | sort -n | tail -1
+ )
+ [ -z "$max" ] && max=0
+ echo $(($max+1))
+}
+
+ldap_user_password() {
+ local ifs=$'\t'
+ slapcat -o ldif-wrap=999 -a '(&(objectClass=posixGroup)(memberUid=*))' | grep -E "(^cn|memberUid):" | sed -e 's/"/\\"/g' -e "s/: /$ifs/g" | while IFS="$ifs" read -r -a row; do
+ echo "${row[0]}"
+ echo "${row[1]}"
+ echo
+ done
+ # | sed -E -e 's/"/\\"/g' -e 's/^([^:]+): (.*)$/k="\1"; v="\2"/' | while read
+ #| sed -E -e 's/"/\\"/g' -e 's/: (.*)$/="\1";/' | awk '{if (/;$/) {printf $0; } else {print $0; }}'
+}
+
ldap_new_password() {
local pass=$(for i in 0 1 3 4;do slappasswd -gn; done; echo)
cat <<EOF