NAME¶
CatalystX::SimpleLogin - Provide a simple Login controller which can be reused
SYNOPSIS¶
package MyApp;
use Moose;
use namespace::autoclean;
use Catalyst qw/
+CatalystX::SimpleLogin
Authentication
Session
Session::State::Cookie
Session::Store::File
/;
extends 'Catalyst';
__PACKAGE__->config(
'Plugin::Authentication' => { # Auth config here }
);
__PACKAGE__->config(
'Controller::Login' => { # SimpleLogin config here }
);
__PACKAGE__->setup;
ATTENTION!¶
If you're new here, you should start by reading CatalystX::SimpleLogin::Manual,
which provides a gentler introduction to using this code. Come back here when
you're done there.
DESCRIPTION¶
CatalystX::SimpleLogin is an application class Moose::Role which will inject a
Catalyst::Controller which is an instance of
CatalystX::SimpleLogin::Controller::Login into your application. This provides
a simple login and logout page with the adition of only one line of code and
one template to your application.
REQUIREMENTS¶
- A Catalyst application
- Working authentication configuration
- Working session configuration
- A view
CUSTOMISATION¶
CatalystX::SimpleLogin is a prototype for CatalystX::Elements. As such, one of
the goals is to make it easy for users to customise the provided component to
the maximum degree possible, and also, to have a linear relationship between
effort invested and level of customisation achieved.
Three traits are shipped with SimpleLogin: WithRedirect, Logout, and
RenderAsTTTemplate. These traits are set in the config:
__PACKAGE__->config(
'Controller::Login' => {
traits => [qw/ Logout WithRedirect RenderAsTTTemplate /],
login_form_args => { # see the login form },
);
COMPONENTS¶
- •
- CatalystX::SimpleLogin::Controller::Login - first point of
call for customisation. Override the action configs to reconfigure the
paths of the login or logout actions. Subclass to be able to apply method
modifiers to run before / after the login or logout actions or override
methods.
- •
- CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout
- provides the "logout" action and associated methods. You can
compose this manually yourself if you want just that action.
This trait is set by default, but if you set another trait in your config,
you will have to include it.
- •
- CatalystX::SimpleLogin::TraitFor::Controller::Login::WithRedirect
- provides the "login" action with a wrapper to redirect to a
page which needs authentication, from which the user was previously
redirected. Goes hand in hand with Catalyst::ActionRole::NeedsLogin
- •
- CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate
- sets the stash variable 'template' to point to a string reference
containing the rendered template so that it's not necessary to have a
login.tt template file.
- •
- CatalystX::SimpleLogin::Form::Login - the HTML::FormHandler
form for the login form.
- •
- Catalyst::ActionRole::NeedsLogin - Used to cause a specific
path to redirect to the login page if a user is not authenticated.
TODO¶
Here's a list of what I think needs working on, in no particular order.
Please feel free to add to or re-arrange this list :)
- Fix extension documentation
- Document all this stuff.
- Examples of use / customisation in documentation
- Fixing one uninitialized value warning in
LoginRedirect
- Disable the use of NeedsLogin ActionRole when WithRedirect
is not loaded
SOURCE CODE¶
http://github.com/bobtfish/catalystx-simplelogin/tree/master
git://github.com/bobtfish/catalystx-simplelogin.git
Forks and patches are welcome. #formhandler or #catalyst (irc.perl.org) are both
good places to ask about using or developing this code.
SEE ALSO¶
- •
- Catalyst
- •
- Moose and Moose::Role
- •
- MooseX::MethodAttributes::Role - Actions composed from
Moose::Role.
- •
- CatalystX::InjectComponent - Injects the controller
class
- •
- HTML::FormHandler - Generates the login form
- •
- Catalyst::Plugin::Authentication - Responsible for the
actual heavy lifting of authenticating the user
- •
- Catalyst::Plugin::Session
- •
- Catalyst::Controller - Allows you to decorate actions with
roles (E.g Catalyst::ActionRole::NeedsLogin)
- •
- CatalystX::Component::Traits - Allows Moose::Role to be
composed onto components from config
AUTHORS¶
- Tomas Doran (t0m) "bobtfish@bobtfish.net"
- Zbigniew Lukasiak
- Stephan Jauernick (stephan48)
"stephan@stejau.de"
- Gerda Shank (gshank) "gshank@cpan.org"
- Florian Ragwitz "rafl@debian.org"
- Shlomi Fish
- Oleg Kostyuk (cub-uanic) "cub@cpan.org"
LICENSE¶
Copyright 2009 Tomas Doran. Some rights reserved.
This sofware is free software, and is licensed under the same terms as perl
itself.