[Product-Developers] Techniques for building an Active Directory person directory

Dylan Jay djay at pretaweb.com
Mon Feb 15 00:34:05 UTC 2010

PloneLDAP already pulls out any user or group properties you've  

Dylan Jay, Plone Solutions Manager

On 15/02/2010, at 11:07 AM, Dan Jacka wrote:

> I'm building a person directory in my Plone 3.3 intranet. The  
> directory must:
> - source people from Active Directory;
> - source places from Active Directory;
> - allow additional people or places to be added in Plone, without a  
> corresponding AD entry;
> - allow a set of additional properties to be set per person/place in  
> Plone;
> - allow grouping of people or places into organisational units.
> Tall order huh? I'm thinking I'll tackle it this way:
> - FacultyStaffDirectory is a great start. It'll provide the basic  
> directory framework, plus the grouping mechanism via  
> Products.Relations.
> - I'll define interfaces IPerson and IPlace, detailing the fields of  
> a complete person/place. I'll change FSD to find and display objects  
> providing those interfaces.
> - Every IPerson/IPlace will be made up of either:
>  - AD-sourced data plus additional Plone data,
>  or:
>  - An Archetypes object plus additional Plone data.
> - The 'additional Plone data' will come from Zope 3 annotations.  
> With annotations I can have the same set of additional data on any  
> IPerson/IPlace object. I'll need a UI for editing the annotations.
> - I'm using PloneLDAP for authentication, so I already have a  
> connection to AD. I'll write adapters to IPerson/IPlace that use the  
> connection to pull out required data.
> - I'll add Person and Place content types to FacultyStaffDirectory  
> based on FSD's Person type. Priveleged users can manually add a  
> person/place to the directory by adding an object of the right type.
> This all looks very challenging to get right. I've hunted around for  
> any products that can help, including membrane,  
> archetypes.ldapstorage, betahaus.memberprofile, ATMemberInfo, etc.  
> Although their code will doubtless be useful, none of them gets  
> close enough to my use case.
> My approach is still very high level at the moment. I have a few  
> questions for the list before I dive fully into designing this:
> - Is there a third party product I've missed that will do all this  
> for me? :-)
> - Does my approach seem sane?
> - What would you do differently?
> Any pointers in the right direction would be very much appreciated.
> Thank you,
> Dan
> _______________________________________________
> Product-Developers mailing list
> Product-Developers at lists.plone.org
> http://lists.plone.org/mailman/listinfo/product-developers

More information about the Product-Developers mailing list