• Remember Mailing List

Re: lots of recent work!

from Rob Miller on Jul 24, 2006 06:12 PM
On 2006-07-24 10:40, Calvin Hendryx-Parker wrote:
> Hey,
> 
> See my responses below...
> 
> On Jul 21, 2006, at 6:14 PM, Rob Miller wrote:
> > http://dev.plone.org/collective/changeset/26308:
> >
> > * in MemberDataContainer.getAllowedMemberTypes(), you're returning  
> > a list of all the registered membrane types.  the registered  
> > membrane types, however, can include objects that are property  
> > providers, group providers, role providers, etc., in addition to  
> > authentication providers.  what we really need is to get away from  
> > thinking of a member "type" and to start thinking of a member  
> > "policy", so someone could register and then get the correct set of  
> > objects created.  at the very least, though, we should be filtering  
> > so that only auth provider objects are returned, though.
> 
> I'm not sure I know what you mean about making it a "policy".  Is the  
> idea that multiple content objects could represent the schema of your  
> member?

yes.  you can use any number of content objects for properties, for roles, for
groups, etc.  adding a member, then, might actually involve the instantiation
of several different content objects.  the default setup for remember will
collapse this all down to a single content object, but we don't want to code
ourselves into a corner; i expect people who are extending remember will want
to make use of some of these fancy capabilities, and we want to let them. 
> > * ultimately, we want to get away from depending on the  
> > MemberDataContainer altogether.  it would be much better if  
> > "defaultType", and any other member-related config information we  
> > want to store, were managed via a Z3 schema that can be associated  
> > w/ the MembershipTool, exposed via formlib.
> 
> I'll look at doing up the membership tool to be our one stop shop for  
> membership related data like the default member type.
> 
> > http://dev.plone.org/collective/changeset/26290:
> >
> > * the MemberDataContainer.searchForMembers() method doesn't really  
> > belong on the MemberDataContainer any longer.  instead, there  
> > should be an adapter for IMembraneTool that provides a new  
> > interface called IMembraneSearch, which can expose a  
> > searchForMembers method.  the MembershipTool would retrieve the  
> > MembraneTool and adapt it to IMembraneSearch to actually perform  
> > searches.
> 
> Agreed,  I think I see now where you are going with this.  I'll  
> refactor that part into an adapter on the membrane tool.

awesome!

> > * the MembershipTool should no longer assume that all member  
> > objects live in portal_memberdata.  we can introduce a  
> > "defaultMemberContainer" config option where new member objects  
> > will be placed, but addMember should take an optional "container"  
> > argument as an alternative.  and "deleteMembers" (which should  
> > ultimately delegate to some member deletion policy) should find the  
> > member objects by doing catalog searches rather than by assuming  
> > the objects live in portal_memberdata.
> 
> I like the idea of this, but time may not permit us to implement it  
> yet.  This doesn't seem hard to put into a next release though since  
> the migration would only involve the membership tool itself.

this one is actually pretty key, i don't want to make a release while this
stuff is hardcoded.  it's not too much work, though, maybe i can get to it
soon. 
> > GENERAL:
> >
> > we need some unit tests, there are only two right now.  i don't  
> > expect you to cover the entire codebase (and anyway, most of the  
> > hard work is done by membrane, which has reasonable coverage), but  
> > it would be great to get some tests on at least what you've worked  
> > on, such as a couple for the new registration tool, and a few for  
> > the member searching and member addition / deletion stuff mentioned  
> > above.
> 
> This will have to be time permitting on our side which isn't looking  
> likely right now.  The load here is pretty high, but luckily I think  
> we have 3 projects coming online that will need it.  So we might be  
> able to spread it across them all.
> 
> > all in all, though, it's coming very well!  thanks so much for the  
> > work you've already done!
> 
> Great,  I'm glad it is somewhat in line with what you had  
> envisioned.  We look forward to a release.

thanks again!

-r
Return to date view: threaded or flat