[jifty-devel] RFC: Login/Logout functionality

John Peacock jpeacock at rowman.com
Tue Apr 25 11:02:13 EDT 2006


I finally had the time to extract (and update) the login/logout 
functionality from Wifty and add it to my Jifty app.  Before I try and 
make this completely generic, do people think that this functionality 
should be part of the core Jifty distro, or do I have to think about how 
to extend the core (via the as-yet-unwritten plugin framework)?

For discussion purposes, adding login/logout functionality to the core 
would require adding the following files:

share/web/templates/login
share/web/templates/logout
share/web/templates/signup
lib/Jifty/Action/Login.pm
lib/Jifty/Action/Logout.pm
lib/Jifty/Action/Signup.pm
lib/Jifty/Action/SendAccountConfirmation.pm
lib/Jifty/Action/ConfirmEmail.pm
lib/Jifty/Action/RecoverPassword.pm
lib/Jifty/Action/ResetLostPassword.pm
lib/Jifty/Notification/ConfirmAddress.pm

The login/logout functionality also needs to extend Jifty::Dispatcher as 
well as the code in Jifty::ClassLoader to autogenerate the classes in 
the application space.

However extending Dispatcher and ClassLoader is likely to be the 
sticking point to adding this fuctionality outside of the core.  It 
appears that I could probably use a new ClassLoader object to extend the 
auto-creation magic, but I don't (currently) see a way to extend the 
Dispatcher actions (without requiring the user to cut/paste code into 
their own Dispatcher).

Personally, I think that login/logout functionality is so central to 
anything more than a very basic webapp that is should be present in the 
core.  I would propose adding a setting to config.yml that would link 
the core login code to the User class in the app, e.g.

	CurrentUserClass: MyApp::CurrentUser
	LoginUserClass: MyApp::User

and have the startup code confirm that MyApp::User has the appropriate 
functionality to support the core modules.  At some point, I'd like to 
replace the basic Login with one that will probe for a client 
certificate and use that instead of a username/password, but adding this 
to the core won't affect that.

Does this seem like a worthwhile avenue to pursue?

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748


More information about the jifty-devel mailing list