---
name: "Catalyst::ActionRole::NeedsLogin"
section: "3pm"
platform: "linux"
package: "libcatalystx-simplelogin-perl"
version: "0.21-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::ActionRole::NeedsLogin"
---

# Catalyst::ActionRole::NeedsLogin(3pm)

checks if a user is logged in and if not redirects him to login page

## NAME

Catalyst::ActionRole::NeedsLogin - checks if a user is logged in and if not redirects him to login page

## SYNOPSIS

```
    package MyApp::Controller::NeedsAuth;
    use Moose;
    use namespace::autoclean;
    # One needs to inherit from Catalyst::Controller in order
    # to get the Does('NeedsLogin') functionality.
    BEGIN { extends 'Catalyst::Controller'; }
    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'] });
```

## DESCRIPTION

Provides a ActionRole for forcing the user to login.

## WRAPPED METHODS

### execute

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 ALSO

- CatalystX::SimpleLogin::TraitFor::Controller::Login::WithRedirect

  - CatalystX::SimpleLogin::Controller::Login

  - CatalystX::SimpleLogin::Form::Login

  ## AUTHORS

See CatalystX::SimpleLogin for authors.

## LICENSE

See CatalystX::SimpleLogin for license.
