Version 1.4.001
All of our contacts are stored in LDAP. In order to use the additional phone numbers, private information or stuff not in the inetorgperson schema, I created my own schema to handle the missing attributes. I’ve included this schema in my slapd.conf, and added to the “schema2egw” array in “class.so_ldap.inc.php” the mapping from eGW to my schema attributes.
This worked better than I though it would. I can now use every field in the addressbook.edit template. However there is one problem which I can not figure out. That is the “Category” (cat_id) drop down on the main addressbook template.
I’ve modified the “_colFilter” function in “class.so_ldap.inc.php” to use my category attribute, “cscatid” instead of “category.” This is a debug statement in “_searchLDAP” from “lass.so_ldap.inc.php”. This is what is getting sent to “ldap_search” …
ldap_search(Resource id #95, ou=contacts,ou=Contacts,dc=xxxxx,dc=xxx, (&(|(objectclass=inetorgperson)(objectclass=cscontact)(objectclass=posixaccount))(|(cscatid=43)(cscatid=46))), Array, 0, 5000)
However the OpenLDAP is stating in the message log …
Jul 5 16:05:44 server slapd[14331]: conn=376 op=1 SRCH base=“ou=contacts,ou=Contacts,dc=xxxxx,dc=xxx” scope=2 deref=0 filter="(&(|(objectClass=inetOrgPerson)(objectClass=csContact)(objectClass=posixAccount))(|(?=undefined)(?=undefined)))"
The "cscatid"s have been replaced by “?=undefined”. It seems to do this for any attribute in my schema. And it appears to be doing in in “ldap_search.” I’ve set the debug level of OpenLDAP to -1 to see everything and I can’t even see “cscatid” coming into the ldap for the filter, however I do see it in the allowed attributes.
I have limited PHP and LDAP knowledge, just enough to get by. Because “cscontact” became “csContact” in the “/var/log/message”, it leads me to believe OpenLDAP is the trouble spot. Any clue how I can fix this?