Multilingual members, from LDAP directory, with custom multilingual listings of members and groups

For a multilingual web site, with users defined in a LDAP directory (using the pas.plugins.ldap addon), I need to let users edit multilingual fields (like bios, urls) in their user profile. Users must be listed with pictures, short bios, with some more info from special fields like affiliations, research areas, defined in the LDAP directory or added on the web site.

Any idea how to create such a composite member type (without information duplication)?

My approach would be to create a userprofile content type with fields that resemble the speaker type on training.plone.org. The following sections of the training show how to make these fields multilingual and how to do this in code rather than TTW.

A new property in portal memberdata could function as a trigger to create an initial profile at first login and present a menu option to create or modify the userprofile content type.

User groups could be as simple as allowing users to choose from a categories field (optionally allowing category keywords to be added by i.e. a department head).

Edit 4/15: I was not aware of dexterity.membrane

With PAS you can get the user from LDAP and store additional properties in Plone, like with any user. The property lookup works layered, same with storage.

Yes, I noticed, but how to make that "any LDAP user" multilingual?
Would it be possible to mix and match pas.plugins.ldap and dexterity.membrane to create it?
But no, because dexterity.membrane depends on Archetypes, and Archetypes does not work with python 3 (which it still maintained, apparently for python 2.7 only).

dexterity.membrane latest 3.0 alpha works with Python 3 and without Archetypes.

Indeed, I can now install dexterity.membrane (I wasn't able yesterday); it has no dependencies to Archetypes and works with Python 3.

But I may not need to create a special member type; for my simple use case, I'll add copies of properties in /@@member-fields for each language I need and use custom templates to display only the fields related to the active language.

Finally, that's what I did, after trying a few things, so thanks for your suggestion; there was no need for dexterity.membrane.

1 Like