package Lemonldap::NG::Portal::Plugins::ForceAuthn;

use strict;
use Mouse;
use Lemonldap::NG::Portal::Main::Constants qw(
  PE_OK
  PE_MUSTAUTHN
);

our $VERSION = '2.22.0';

extends 'Lemonldap::NG::Portal::Main::Plugin';

# INITIALIZATION

use constant forAuthUser => 'run';

# RUNNING METHOD

sub run {
    my ( $self, $req ) = @_;
    if (    $req->env->{HTTP_HOST}
        and $req->portal =~ /\Q$req->{env}->{HTTP_HOST}/ )
    {
        my $delta = time - $req->{sessionInfo}->{_lastAuthnUTime};
        $self->logger->debug( "Delta with last Authn -> " . $delta );

        return $delta <= $self->conf->{portalForceAuthnInterval}
          ? PE_OK
          : PE_MUSTAUTHN;
    }
}

1;
