Hi Alessandro, and thanks for you reply. I just watched your presentation.
Last week I tried PloneIntranet in a VM. It's impressive, does much more than what I need, and its source code is a bit complex (to say the least); your presentation is about the challenges of PloneIntranet (and similar Plone based systems), but my use case is a lot simpler: I just want to manage simple Plone objects, one per member defined in a LDAP server (no more than a thousand), with no more than 10 groups (also defined in the same LDAP server). Also, one member does not appear in more than 3 groups. So it's not a complex scenario (that would require patching PAS, use NetworkX, etc).
I think that in your presentation you mentioned the plugins used by PloneIntranet, but not pas.plugins.ldap (the only one I was able to use with some success). I develop using Plone 5.2 and Python 3.7; PloneIntranet does not work with this configuration, at least not its LDAP addons.
My first intent was to use only pas.plugins.ldap, and display member lists and profiles with simple custom templates. I realized how slow pas.plugins.ldap can be, and how caching can help; at some point I hacked a simple memcached query engine, but I was asked for members to be searchable like normal Plone objects, and that many years ago there was a way to index anything for the default Plone search engine; my impression is that with newer versions of Plone, only Plone objects can be indexed and searched... If anyone knows how to index "anything" in the newest Plone versions (like in the good old days of Plone 2), please let me know, that could make my life easier; if it's not possible, then I would conclude that users/members should exists as Plone objects (even if synchronization is required between LDAP and Plone, maybe several times a day). I suspect it can be done with or without dexterity.membrane, and that there's probably advantages at using membrane (but I'm not sure what exactly). Also, because the web site is multilingual, I would certainly need dexterity to create a multilingual member type.
What I'd like is some up-to-date example(s) at how to make dexterity.membrane use pas.plugins.ldap, or how to create a (non-membrane) "member data" dexterity type that could interact with pas.plugins.ldap,