Hello list:
Some additional insights on my original points:
On 08/04/2012 00:41, Achim wrote:
- 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
And here are the slightly redacted LDAP log entries:
Apr 8 01:20:59 mail slapd[25146]: hdb_modify: updated id=00000316 dn="cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld"Apr 8 01:20:59 mail slapd[25146]: send_ldap_result: conn=1014 op=2 p=3 Apr 8 01:20:59 mail slapd[25146]: send_ldap_result: err=0 matched="" text="" Apr 8 01:20:59 mail slapd[25146]: send_ldap_response: msgid=3 tag=103 err=0Apr 8 01:20:59 mail slapd[25146]: connection_get(21)Apr 8 01:20:59 mail slapd[25146]: connection_get(21): got connid=1014 Apr 8 01:20:59 mail slapd[25146]: connection_read(21): checking for input on id=1014Apr 8 01:20:59 mail slapd[25146]: op tag 0x6c, time 1333840859 Apr 8 01:20:59 mail slapd[25146]: conn=1014 op=3 do_modrdn Apr 8 01:20:59 mail slapd[25146]: do_modrdn: dn (cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld) newrdn (mail=user@example.com) newsuperior () Apr 8 01:20:59 mail slapd[25146]: >>> dnPrettyNormal: <cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld> Apr 8 01:20:59 mail slapd[25146]: <<< dnPrettyNormal: <cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld>, <cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld> Apr 8 01:20:59 mail slapd[25146]: >>> dnPrettyNormal: mail=user@example.com Apr 8 01:20:59 mail slapd[25146]: <<< dnPrettyNormal: mail=user@example.com, mail=user@example.com Apr 8 01:20:59 mail slapd[25146]: bdb_dn2entry("cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld") Apr 8 01:20:59 mail slapd[25146]: ==>hdb_modrdn(cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld,mail=user@example.com,NULL) Apr 8 01:20:59 mail slapd[25146]: bdb_dn2entry("cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld") Apr 8 01:20:59 mail slapd[25146]: hdb_modrdn: wr to children of entry ou=public,ou=rcabook,dc=calserver,dc=tld OK Apr 8 01:20:59 mail slapd[25146]: hdb_modrdn: parent dn=ou=public,ou=rcabook,dc=calserver,dc=tld Apr 8 01:20:59 mail slapd[25146]: >>> dnNormalize: <mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld> Apr 8 01:20:59 mail slapd[25146]: <<< dnNormalize: <mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld> Apr 8 01:20:59 mail slapd[25146]: hdb_modrdn: new ndn=mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld Apr 8 01:20:59 mail slapd[25146]: => hdb_dn2id("mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld") Apr 8 01:20:59 mail slapd[25146]: <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988) Apr 8 01:20:59 mail slapd[25146]: => hdb_dn2id_delete 0x316: "cn=Testuser,ou=public,ou=rcabook,dc=calserver,dc=tld" Apr 8 01:20:59 mail slapd[25146]: <= hdb_dn2id_delete 0x316: 0 Apr 8 01:20:59 mail slapd[25146]: => hdb_dn2id_add 0x316: "mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld" Apr 8 01:20:59 mail slapd[25146]: <= hdb_dn2id_add 0x316: 0 Apr 8 01:20:59 mail slapd[25146]: bdb_modify_internal: 0x00000316: mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld Apr 8 01:20:59 mail slapd[25146]: bdb_modify_internal: delete cn Apr 8 01:20:59 mail slapd[25146]: bdb_modify_internal: softadd mail Apr 8 01:20:59 mail slapd[25146]: bdb_modify_internal: replace entryCSN Apr 8 01:20:59 mail slapd[25146]: bdb_modify_internal: replace modifiersName Apr 8 01:20:59 mail slapd[25146]: bdb_modify_internal: replace modifyTimestamp Apr 8 01:20:59 mail slapd[25146]: oc_check_required entry (mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld), objectClass "inetOrgPerson" Apr 8 01:20:59 mail slapd[25146]: Entry (mail=user@example.com,ou=public,ou=rcabook,dc=calserver,dc=tld): object class 'inetOrgPerson' requires attribute 'cn' Apr 8 01:20:59 mail slapd[25146]: entry failed schema check: object class 'inetOrgPerson' requires attribute 'cn' Apr 8 01:20:59 mail slapd[25146]: <=- hdb_modrdn: modify failed: Package not installed (65) Apr 8 01:20:59 mail slapd[25146]: send_ldap_result: conn=1014 op=3 p=3 Apr 8 01:20:59 mail slapd[25146]: send_ldap_result: err=65 matched="" text="object class 'inetOrgPerson' requires attribute 'cn'" Apr 8 01:20:59 mail slapd[25146]: send_ldap_response: msgid=4 tag=109 err=65
For some reason, "bdb_modify_internal: delete cn" is issued, which of course in turns causes the violation of the inetOrgPerson schema requirements.
The question is: why is the existing CN deleted during an update operation?
BTW, when I try to change that CN via the UI, I get: Warning: ldap_mod_replace(): Modify: Naming violation in program/include/rcube_ldap.php on line 1105
And what does the error "hdb_modrdn: modify failed: Package not installed (65)" mean? Is this from sladp or from RC?
- Adding an address does not work:
After adding the region=>st mapping outlined in my other message, I used the UI to set the 6 address fields.
Submitting a new address that way, the following happens:
Apr 8 01:11:03 mail slapd[25146]: Entry (mail=new_contact@example.com,ou=public,ou=rcabook,dc=hostname,dc=tld), attribute 'c' not allowed Apr 8 01:11:03 mail slapd[25146]: entry failed schema check: attribute 'c' not allowed Apr 8 01:11:03 mail slapd[25146]: hdb_modify: modify failed (65) Apr 8 01:11:03 mail slapd[25146]: send_ldap_result: conn=1003 op=3 p=3 Apr 8 01:11:03 mail slapd[25146]: send_ldap_result: err=65 matched="" text="attribute 'c' not allowed"
And indeed, using the web UI to only fill out street, postalCode, l and st fields (ie. leaving c[ountry] empty) seems to work!
Turns out that 'c' is actually NOT part of the inetOrgPerson schema [1], wheras other really important fields like "Pager", "Teletex Id", or "X.121 Address" are... Why on earth no country field is part of this schema is beyond me. Perhaps somebody was already envisioning a future without borders :-)
Any idea on how to add 'c' to the existing public/private directories with standard inetOrgPerson schema without having to re-import the existing data? And one we are at it, a field for birthdays, etc would also be nice ;-)
As a work-around, I removed "country" from fieldmap and address_template for the time being.
- Adding groups under the LDAP directory fails:
slapd says:
Apr 8 01:40:03 mail slapd[25146]: send_ldap_result: conn=1022 op=1 p=3 Apr 8 01:40:03 mail slapd[25146]: send_ldap_result: err=17 matched="" text=": empty AttributeDescription" Apr 8 01:40:03 mail slapd[25146]: send_ldap_response: msgid=2 tag=105 err=17
Could this be related to how I set up the LDAP repos (as described in http://trac.roundcube.net/wiki/Howto_Ldap): perhaps there is a limitation that groups are not allowed in that setup? Or RC is not sending a required attribute? Or that this is a specific right (apart from "write") that I need to give to the LDAP user that tries to create the group? Or is this functionality not supported yet, as described here: http://trac.roundcube.net/ticket/1487837
- 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 ;-)
It appears that there have been some efforts in the past (2006!) about this [2], and even some recent success [3]. I cannot find any reference to jpegPhoto in the current code though.
Thank you in advance, Achim
[1] http://arstechnica.com/civis/viewtopic.php?f=16&t=47451 [2] http://www.mail-archive.com/dev@lists.roundcube.net/msg02382.html [3] http://thread.gmane.org/gmane.mail.roundcube.devel/9713/focus=9714