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
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to