I'm having trouble with the ldap_add function in my script. There are 4
possible classes in the ldap schema that would be used - organization,
person, qmailUser, inetOrgPerson. The ldap_add script will every time
return
LDAP-Errno: 65
LDAP-Error: Object class violation
UNLESS I include data for person, qmailUser, and inetOrgPerson. There's
nothing in the schema that should be doing this, so I'm not sure why PHP
is complaining about it. Here's some example code real quick:
<?php
$l=ldap_connect();
ldap_set_option($l, LDAP_OPT_PROTOCOL_VERSION, 3);
$user='cn=Manager,dc=mycompany,dc=com';
ldap_bind($l,$user,'mypassword');
$info = array();
$info['objectClass'][0] = 'organization';
$info['objectClass'][1] = 'qmailUser';
$info['o'] = 'Test Company';
$info['mail'] = '[EMAIL PROTECTED]';
$info['uid'] = 'TestCompany';
$info['ou'] = 'devel';
$r=ldap_add($l,
"uid={$info['uid']},ou={$info['ou']},dc=mycompany,dc=com", $info);
if($r) {
echo "Success\n";
} else {
echo "Fail\n";
}
?>
There's really no reason why this shouldn't work as far as I can tell.
Here's the objectClasses for the classes that I'm actually using.
objectclass ( 1.3.6.1.4.1.7914.1.2.2.1 NAME 'qmailUser'
DESC 'QMail-LDAP User' SUP top AUXILIARY
MUST ( mail $ uid )
MAY ( mailMessageStore $ homeDirectory $ userPassword $
mailAlternateAddress $ qmailUID $ qmailGID $ mailQuota $
mailHost $ mailForwardingAddress $ deliveryProgramPath $
qmailDotMode $ deliveryMode $ mailReplyText $
accountStatus $ qmailAccountPurge ) )
objectclass ( 2.5.6.4 NAME 'organization' SUP top STRUCTURAL
MUST o
MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $
x121Address $ registeredAddress $ destinationIndicator $
preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier
$
telephoneNumber $ internationaliSDNNumber $
facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $
postalAddress $ physicalDeliveryOfficeName $ st $ l $ description
) )
objectclass ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
objectclass ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson'
DESC 'RFC2798: Internet Organizational Person'
SUP organizationalPerson
STRUCTURAL
MAY (
audio $ businessCategory $ carLicense $ departmentNumber $
displayName $ employeeNumber $ employeeType $ givenName $
homePhone $ homePostalAddress $ initials $ jpegPhoto $
labeledURI $ mail $ manager $ mobile $ o $ pager $
photo $ roomNumber $ secretary $ uid $ userCertificate $
x500uniqueIdentifier $ preferredLanguage $
userSMIMECertificate $ userPKCS12 )
)
objectclass ( 2.5.6.0 NAME 'top' ABSTRACT
MUST objectClass )
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php