| CatalystX-SimpleLogin documentation | Contained in the CatalystX-SimpleLogin distribution. |
Catalyst::ActionRole::NeedsLogin - checks if a user is logged in and if not redirects him to login page
package MyApp::Controller::NeedsAuth;
sub inbox : Path Does('NeedsLogin') {
# Redirects to /login if not logged in
my ($self, $c) = @_;
$c->stash->{template} = "inbox.tt2";
return;
}
sub inbox : Path Does('NeedsLogin') :LoginRedirectMessage('Your custom Message') {
# Redirects to /login if not logged in-
}
# Turn on in config
MyApp->config('Contoller::Login' => { traits => ['WithRedirect'] });
Provides a ActionRole for forcing the user to login.
If there is no logged-in user, call the login_redirect() method in the
'Login' controller with the Catalyst context object, $c, and the
message specified by the :LoginRedirectMessage('Message here') method
attribute (see the synopsis).
If there is a user logged-in (i.e: $c->user is true), execute the body
of the action as it is.
See CatalystX::SimpleLogin for authors.
See CatalystX::SimpleLogin for license.
| CatalystX-SimpleLogin documentation | Contained in the CatalystX-SimpleLogin distribution. |
package Catalyst::ActionRole::NeedsLogin; use Moose::Role; use namespace::autoclean; around execute => sub { my $orig = shift; my $self = shift; my ($controller, $c, @args) = @_; if (!$c->user) { my $message = ($self->attributes->{LoginRedirectMessage}[0]) ? $self->attributes->{LoginRedirectMessage}[0] :'You need to login to view this page!'; $c->controller('Login')->login_redirect($c, $message, @args); $c->detach; } else { return $self->$orig(@_); } }; 1; __END__