CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout - CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout documentation


CatalystX-SimpleLogin documentation Contained in the CatalystX-SimpleLogin distribution.

Index


Code Index:

NAME

Top

CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout

DESCRIPTION

Top

Simple controller role for logging users out. Provides a logout action (at /logout by default) which redirects the user to the homepage by default.

ACTIONS

Top

logout : Chained('/') PathPart('logout') Args(0)

Calls $c->logout, then redirects to the logout uri retuned by $self->redirect_after_logout_uri.

METHODS

Top

redirect_after_logout_uri

Returns the uri to redirect to after logout.

Defaults to $c->uri_for('/'); you can override this by setting the <redirect_after_logout_uri> key in config to a path to be passed to $c->uri_for.

Alternatively, you can write your own redirect_after_logout_uri in your Login controller if you are extending CatalystX::SimpleLogin and it will override the method from this role.

do_clear_session_on_logout

Deletes the session after a logout.

To enable this use the following in your config: __PACKAGE__->config('Controller::Login' => { clear_session_on_logout => 1 });

SEE ALSO

Top

CatalystX::SimpleLogin::ControllerRole::Login

AUTHORS

Top

See CatalystX::SimpleLogin for authors.

LICENSE

Top

See CatalystX::SimpleLogin for license.


CatalystX-SimpleLogin documentation Contained in the CatalystX-SimpleLogin distribution.

package CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout;
use MooseX::MethodAttributes::Role;
use MooseX::Types::Moose qw/Str Bool/;
use namespace::autoclean;

sub logout : Chained('/') PathPart('logout') Args(0) {
    my ($self, $c) = @_;
    $c->logout;
    $self->do_clear_session_on_logout($c) if $self->clear_session_on_logout;
    $c->res->redirect($self->redirect_after_logout_uri($c));
}

has clear_session_on_logout => (
    isa => Bool,
    is => 'ro',
    default => 0,
);

sub do_clear_session_on_logout {
    my ($self, $c) = @_;
    $c->delete_session;
}

sub redirect_after_logout_uri {
    my ($self, $c) = @_;
    $c->uri_for($self->_redirect_after_logout_uri);
}
has _redirect_after_logout_uri => (
    isa => Str,
    default => '/',
    init_arg => 'redirect_after_logout_uri',
    is => 'ro',
);

1;