[Masonmail-developers] some updates
Status: Planning
Brought to you by:
tallison
From: Tom A. <tal...@ta...> - 2005-01-14 12:09:50
|
Vitor has done a very nice job laying out some basic framework on the file structure for development and we've been tossing back and forth ideas on some of the fundamentals. I'm not a wizard at Mason so I'm taking advice humbly... Apparently he's done these types of applications in the past, so I'm willing to take what he's volunteering as a baseline and we'll run from there. Because of this, things will change a lot as we sort it out. One of the results of this is that I have a lot of rewriting to do on the docs, but that's why they are out there. To be changed. I'm also trying to learn a lot of Mason specifics while keeping my day job and a (reasonably) happy wife. I'm thrilled that there have been as many people signing up as developers at this point. This means a lot of developement can happen without too much pain. And hopefully we'll all learn a lot in the process. Personally, my brain is turning to mush and it feels great! I've added everyone I can find to the project. If I missed someone you'll have to hit me and wake me up. I think theres a few core pieces we can start working on, or at least talking about on the list to get an idea of how things might procede. ######################################### Conventions: I started out with some bad conventions on file suffixes. referencing http://www.masonhq.com/docs/manual/Admin.html#controlling_access_via_filename_ is there any reason not to follow that document for the convention of .html/.mhtml .foo/.mfoo ? Also, the mason configuration should include something to the affect of: PerlModule HTML::Mason::ApacheHandler <LocationMatch "(\.html|\.txt|\.pl)$"> SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler </LocationMatch> <LocationMatch "(\.m(html|txt|pl)|dhandler|autohandler)$"> SetHandler perl-script PerlInitHandler Apache::Constants::NOT_FOUND </LocationMatch> to prevent us from hurting ourselves. I guess I need to add a Task item to actually DO the configuration scripts. ######################################### Authentication/syshandler. so far the basic idea here is to run authentication checks (cookie test) and the redirect if no cookie all in a syshandler. Authentication is to be based on Mail::IMAPClient and cookies through MasonX::Request::WithApacheSession. Initially Sessions will be based on Apache::Sessions::File which can be tested out for other Apache::Session::* engines when we have something more to test. Result of successful Authentication would be a global variable for the IMAP object, after all, this is an email application. NOTE: There is a syshandler object in the CVS that is a non-functional attempt at doing just this. I got distracted and uploaded the file prematurely. If someone wants to tackle it I'll add it as a Task to the project page. ######################################### Which should immediately bring up the point that we will need a perl module for pulling a lot of this together. I'm half tempted to put this on the second page because we might need to identify some of the methods a little better before we put together a module for it. Any suggestions on how to manage this? Personally, I can see myself putting a lot of code into the .m* files and as we figure out the functional structure, we'll see where blocks can be stripped out and put into Modules. From the code that I've done, there doesn't seem too much gained by not using Mail::IMAPClient directly in the mason components since you need the direct output for building pages. You just need an IMAP object. ######################################### autohandler: minimal for now with an external link to a CSS file for site wide appearance. ######################################### dhandler: Create the following structure: /public/folders /public/messages /public/compose and inside this folders, only an dhandler. So, the result would be : masonmail.com/folders/list : will list the folders masonmail.com/folders/edit?folder=xxxx : will open an edit folder form for form xxxx masonmail.com/folders/do.edit : will be the target of folder form, it will handle the folder save operation. the components will be on /comps : /comps/folders/edit_form.mc /comps/folders/list_folders.mc ######################################### I'm putting a lot of this out early so that the information is available for everyone to digest and start getting an idea in their mind how things might fit together. The project is about writing code, but if we don't know anything about the foundation it's going to get ugly fast. ######################################### That's about it for now. |