[Date Prev][Date Next] [Chronological] [Thread] [Top]

OpenLDAP, PHP & Multiple Schema



I have installed OpenLDAP 2.x on an OS X Server 10.1.2 box. Everything seems to be fine. I have written a simple PHP front end to modify LDAP values. I can modify values in the core.schema without any problem, but if I try to modify anything in cosine.schema or inetorgperson.schema, I get an error (Warning: LDAP: modify operation could not be completed. in ldapeditor.b2.php on line 247)

This ONLY happens when I try and modify a value in a schema other than core.schema. The project I am working on will require use of cosine and inetorgperson schemas. This is a test page to make sure I can read/write values.

Any help would be tremendously appreciated!

My PHP code looks like this:

<?php

$ds=ldap_connect("coloradobiz.net:389");

if ($ds) {

$dn="cn=Manager,o=portalware";
$r=ldap_bind($ds, $dn, "secret");

$xuser= "cn=". $cn ."";
$sr=ldap_search($ds, "o=portalware",$xuser);
$info=ldap_get_entries($ds,$sr);

$moduser = $info[0]["dn"];

// core.schema entries
$newinfo[givenname]=$givenname;
$newinfo[sn]=$sn;
$newinfo[mail]=$mail;

// cosine.schema entries
$newinfo[comment]=$comment;
$newinfo[networklocurl]=$networklocurl;
$newinfo[facsimileTelephoneNumber]=$facsimileTelephoneNumber;
$newinfo[aliasdata]=$aliasdata;
$newinfo[homeTelephoneNumber]=$homeTelephoneNumber;
$newinfo[shell]=$shell;
$newinfo[otherMailbox]=$otherMailbox;

ldap_modify($r, $moduser, $newinfo);

$sr=ldap_search($ds,"o=portalware",$xuser);

$info = ldap_get_entries($ds, $sr);

echo "<script>";

echo "document.forms[0].elements[0].value='". $info[0]["givenname"][0] ."';";
echo "document.forms[0].elements[2].value='". $info[0]["sn"][0] ."';";
echo "document.forms[0].elements[5].value='". $info[0]["mail"][0] ."';";
echo "document.forms[0].elements[22].value='". $info[0]["networklocurl"][0] ."';";
echo "document.forms[0].elements[23].value='". $info[0]["facsimileTelephoneNumber"][0] ."';";
echo "document.forms[0].elements[24].value='". $info[0]["aliasdata"][0] ."';";
echo "document.forms[0].elements[25].value='". $info[0]["homeTelephoneNumber"][0] ."';";
echo "document.forms[0].elements[26].value='". $info[0]["shell"][0] ."';";
echo "document.forms[0].elements[27].value='". $info[0]["otherMailbox"][0] ."';";


echo "</script>";

ldap_close($ds);

} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

My slapd.conf file looks like:

# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.6 2001/04/20 23:32:43 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
# include schema
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema


# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /usr/local/var/slapd.pid
argsfile /usr/local/var/slapd.args

# Load dynamic backend modules:
# modulepath /usr/local/libexec/openldap
# moduleload back_ldap.la
# moduleload back_ldbm.la
# moduleload back_passwd.la
# moduleload back_shell.la

#######################################################################
# ldbm database definitions
#######################################################################

database ldbm
suffix "dc=coloradobiz,dc=net"
suffix "o=portalware"
rootdn "cn=Manager,o=portalware"
#rootdn "cn=Manager,o=My Organization Name,c=US"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.
directory /usr/local/var/openldap-ldbm
# Indices to maintain
index objectClass eq