Hei Achim
Am Sonntag, 8. April 2012, 00.41:03 schrieb Achim:
Hello list (and first post):
I followed the excellent tutorial http://trac.roundcube.net/wiki/Howto_Ldap to successfully implement successfully public and private address books: importing (via abxldap), searching and browsing works "as advertised".
Thank you for a great job so far :-)
first, thanks for the "excellent" :-)
Next task was to use RC to edit the entries in both public and private directories. Permissions are set accordingly in slapd.conf, and editing works fine with iOS 5.0 and 5.1, and jxplorer.
I enclose 5 specific (verbose) experiences with both 0.7.2 and 0.8-beta that I would like to help address:
I am runnng latest SVN, but I suppose 0.7+ works similar for ldap addressbook.
ldap support in RC is far from good tested, since I just have my setup, and the core devs do not use it much... ...but you have to give us more information... here some tips:
[07-Apr-2012 16:46:00 +0200]: C: Add [dn: mail=new_contact@example.com,ou=public,ou=rcabook,dc=hostname,dc=tld]:
this seems that RC uses a wrong dn config here.... have you an idea why?
[postalcode] => Array
maybe RC is converting the right "postalCode" to lower case, anyway, if you used somewhere lower case in config, LDAP is rececting that!
can you please test your commits with command line tools like ldapadd ldapmodify, and ldapmodrdn ? the syntax looks like: ****adding minimum record*********************************** echo " dn: $new_dn objectClass: top objectClass: inetOrgPerson cn: Fullname sn: Surname " | ldapadd -x -H ldap://$server -D $bind_dn -w $bind_pass *****changing record****************************************** echo " dn: $old_dn changetype: modify replace: sn sn: Othername
add: mail mail: new@mail.tdl " | ldapmodify -x -H ldap://$server -D $bind_dn -w $bind_pass
see the manuals in case of questions. If that works wirh your data as you expected and RC commit is rejected as you described bellow, we have to think deeper :-)
Andreas
- Changing the cn, sn, givenname, o, and phone (mobile, home, work)
fields works and updates the contact as expected: the new input is updated on the server, and existing data are preserved. However, an "Object class violation" is raised:
[07-Apr-2012 03:59:37 +0200]: C: Replace [dn: cn=John Doe,ou=public,ou=rcabook,dc=hostname,dc=tld]: Array ( [cn] => John Doe [sn] => Doe [givenname] => John Doe [o] => ORIG )
[07-Apr-2012 03:59:37 +0200]: S: OK [07-Apr-2012 03:59:37 +0200]: C: Rename [dn: cn=John Doe,ou=public,ou=rcabook,dc=hostname,dc=tld] [dn: mail=john@acme.com] [07-Apr-2012 03:59:37 +0200]: S: Object class violation [07-Apr-2012 03:59:37 +0200]: C: Read [dn: cn=John Doe,ou=public,ou=rcabook,dc=hostname,dc=tld] [(objectclass=*)] [07-Apr-2012 03:59:37 +0200]: S: OK [07-Apr-2012 03:59:37 +0200]: C: Search [(objectClass=groupOfNames)][dn: ou=public,ou=rcabook,dc=hostname,dc=tld] [07-Apr-2012 03:59:37 +0200]: S: 0 record(s) [07-Apr-2012 03:59:37 +0200]: C: Close
RESULT: Works OK, but we get a red error message "An error occured while saving." on top of the web page.
- Adding a new contact to LDAP also works (NO exception this time):
[07-Apr-2012 16:45:59 +0200]: C: Connect [calendarserver:389] [Public] [07-Apr-2012 16:46:00 +0200]: S: OK [07-Apr-2012 16:46:00 +0200]: C: Bind [dn: cn=user@hostname.net,ou=private,ou=rcabook,dc=hostname,dc=tld] [pass: XXXXXXXXXXXXX] [07-Apr-2012 16:46:00 +0200]: S: OK [07-Apr-2012 16:46:00 +0200]: C: Search [(&(objectClass=inetOrgPerson)(|(mail=new_contact@example.com)))][dn: ou=public,ou=rcabook,dc=hostname,dc=tld] [07-Apr-2012 16:46:00 +0200]: S: 0 record(s) [07-Apr-2012 16:46:00 +0200]: C: Add [dn: mail=new_contact@example.com,ou=public,ou=rcabook,dc=hostname,dc=tld]: Array ( [cn] => Last, First [sn] => First [givenname] => Last [mail] => new_contact@example.com [objectClass] => Array ( [0] => top [1] => inetOrgPerson )
)
[07-Apr-2012 16:46:00 +0200]: S: OK [07-Apr-2012 16:46:00 +0200]: C: Close
- Adding an address does not work:
[07-Apr-2012 21:29:43 +0200]: C: Replace [dn: mail=new_contact@example.com,ou=public,ou=rcabook,dc=hostname,dc=tld]: Array ( [cn] => Last, First [sn] => First [givenname] => Last [mail] => new_contact@example.com )
[07-Apr-2012 21:29:43 +0200]: S: OK [07-Apr-2012 21:29:43 +0200]: C: Add [dn: mail=new_contact@example.com,ou=public,ou=rcabook,dc=hostname,dc=tld]: Array ( [street] => Array ( [0] => street )
[postalcode] => Array ( [0] => zip ) [l] => Array ( [0] => place ) [c] => Array ( [0] => country )
)
[07-Apr-2012 21:29:43 +0200]: S: Object class violation [07-Apr-2012 21:29:43 +0200]: C: Read [dn: mail=new_contact@example.com,ou=public,ou=rcabook,dc=hostname,dc=tld] [(objectclass=*)] [07-Apr-2012 21:29:43 +0200]: S: OK [07-Apr-2012 21:29:43 +0200]: C: Search [(objectClass=groupOfNames)][dn: ou=public,ou=rcabook,dc=hostname,dc=tld] [07-Apr-2012 21:29:43 +0200]: S: 0 record(s) [07-Apr-2012 21:29:43 +0200]: C: Close
In addition, I can see the following PHP error again:
Warning: ldap_mod_add(): Modify: Object class violation in program/include/rcube_ldap.php on line 1116
RESULT: Does NOT work, and we get a red error message "An error occured while saving." on top of the web page.
- Adding groups under the LDAP directory fails:
[07-Apr-2012 22:40:47 +0200]: C: Connect [calendarserver:389] [Private] [07-Apr-2012 22:40:47 +0200]: S: OK [07-Apr-2012 22:40:47 +0200]: C: Bind [dn: cn=user@hostname.net,ou=private,ou=rcabook,dc=hostname,dc=tld] [pass: XXXXXXXXXXXXX] [07-Apr-2012 22:40:47 +0200]: S: OK [07-Apr-2012 22:40:47 +0200]: C: Add [dn: cn=Testgroup,cn=user@hostname.net,ou=private,ou=rcabook,dc=hostname,dc=tld]: Array ( [objectClass] => Array ( [0] => top [1] => groupOfNames )
[cn] => Testgroup [] =>
)
[07-Apr-2012 22:40:47 +0200]: S: Undefined attribute type [07-Apr-2012 22:40:47 +0200]: C: Close
RESULT: Does NOT work, and we get a red error message "An error occured while saving." on top of the web page.
In addition, the input mask for "Adress" shows 4 text boxes (street, postal, l, c fields), but the one for Region (st field) only shows a placeholder string "{region}" (no text box, just the text).
- Contact photos that show fine in iOS and jxplorer don't show at all
in the web UI. No need to be able to update the photo here, but showing the already existing contact photo would be awesome ;-)
Could you please indicate whether these are know issues, and what to do about them? Again, editing etc. in iOS and jxplorer on the same LDAP directory with the same credentials works correctly in all of the above cases.
Thank you in advance, Achim _______________________________________________ Roundcube Users mailing list users@lists.roundcube.net http://lists.roundcube.net/mailman/listinfo/users