---
name: "Lemonldap::NG::Portal::Main::Request"
section: "3pm"
platform: "linux"
package: "liblemonldap-ng-portal-perl"
version: "2.21.2+ds-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Lemonldap::NG::Portal::Main::Request"
---

# Lemonldap::NG::Portal::Main::Request(3pm)

HTTP request object used in LLNG portal methods.

## NAME

Lemonldap::NG::Portal::Main::Request - HTTP request object used in LLNG portal methods.

## SYNOPSIS

```
  # Somewhere in a plugin...
  sub run {
      my ( $self, $req ) = @_;
      # $req is a Lemonldap::NG::Portal::Main::Request object
      ...
  }
```

## DESCRIPTION

Lemonldap::NG::Portal::Main::Request extends Lemonldap::NG::Common::PSGI::Request to add all parameters needed to manage portal jobs.

## METHODS

### Accessors

***steps()***

Stack of methods to call for this requests. It can be modified to change authentication process

***data()***

Free hash ref where plugins can store their data (during one request). Using it is a LLNG best practice

*pdata*

Free hash ref where plugins can store some persistent data: data are kept during auth process and cleaned after successful authentication, except if `"$req->pdata->{keepPdata}"` is set to an array of values. In this case, module that has set these values must remove them after its job ends.

*User information*

**id()**

Session id (main cookie value).

**sessionInfo()**

Hash ref that will be stored in session DB.

**user()**

Username given by authentication module, used by userDB module.

***mustRedirect()***

Boolean to indicate that response must be a redirection (used for example when request is a POST).

*urlNotBase64*

Boolean to indicate that url isn't Base64 encoded.

### Other methods

***info()***

Store info to display in response.

***menuError()***

***notification()***

see notification plugin.

***errorType()***

Returns positive/warning/negative depending on value stored in error property.

### Cookie methods

- addCookie(string $cookie): add cookie in $req response headers. String is a complete cookie string, ex: "lemonldap=xxx"

  - delCookie(string $cookieName): remove cookie from $req response headers. It doesn't remove navigator cookie but remove a "Set-Cookie" header if value match "ltcookieNamegt=..."

  ## SEE ALSO

\<http://lemonldap-ng.org/\>, Lemonldap::NG::Common::PSGI::Request

## AUTHORS

- LemonLDAP::NG team \<http://lemonldap-ng.org/team\>

  ## BUG REPORT

Use OW2 system to report bug or ask for features: \<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues\>

## DOWNLOAD

Lemonldap::NG is available at \<https://lemonldap-ng.org/download\>

## COPYRIGHT AND LICENSE

See COPYING file for details.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program.  If not, see \<http://www.gnu.org/licenses/\>.
