NAME
    MPMinusX::AuthSsn - MPMinus AAA via Apache::Session and DBD::SQLite
VERSION
    Version 1.01
SYNOPSIS
        use MPMinusX::AuthSsn;
    
        # AuthSsn session
        my $ssn;
    
        ... see description ...
    
        sub hCleanup {
            ...
            undef $ssn;
            ...
        }
ABSTRACT
    MPMinusX::AuthSsn - MPMinus AAA via Apache::Session and DBD::SQLite
DESCRIPTION
    Methods of using
 METHOD #1. MPMINUS HANDLERS LEVEL (RECOMENDED)
        sub hInit {
            ...
            my $usid = $usr{usid} || $q->cookie('usid') || '';
            $ssn = new MPMinusX::AuthSsn( $m, $usid );
            ...
        }
        sub hResponse {
            ...
            my $access = $ssn->access( sub {
                    my $self = shift;
                    return $self->status(0, 'FORBIDDEN') if $self->get('login') eq 'admin';
                } );
            if ($access) {
                # Auhorized!
                $h{login} = $ssn->get('login');
            }
            $template->cast_if("authorized", $access);
            ....
        }
 METHOD #2. MPMINUS TRANSACTION LEVEL
        sub default_access {
            my $usid = $usr{usid} || $q->cookie('usid') || '';
            $ssn = new MPMinusX::AuthSsn( $m, $usid );
            return $ssn->access();
        }
        sub default_deny {
            my $m = shift;
            my $r = $m->r;
            $r->headers_out->set(Location => "/auth.mpm");
            return Apache2::Const::REDIRECT;
        }
        sub default_form {
            ...
            $h{login} = $ssn->get('login');
            ...
        }
METHODS
    new
          my $authssn = new MPMinusX::AuthSsn( $m, $sid, $expires );
      Returns object
    authen
          $ssn->authen( $callback, ...arguments... );
      AAA Authentication.
      The method returns status operation: 1 - successfully; 0 - not
      successfully
    authz
          $ssn->authz( $callback, ...arguments... );
      AAA Authorization.
      The method returns status operation: 1 - successfully; 0 - not
      successfully
    access
          $ssn->access( $callback, ...arguments... );
      AAA Accounting (AAA Access).
      The method returns status operation: 1 - successfully; 0 - not
      successfully
    get
          $ssn->get( $key );
      Returns session value by $key
    set
          $ssn->set( $key, $value );
      Sets session value by $key
    delete
          $ssn->delete();
      Delete the session
    sid, usid
          $ssn->sid();
      Returns current usid value
    expires
          $ssn->expires();
      Returns current expires value
    status
          $ssn->status();
          $ssn->status( $newstatus, $reason );
      Returns status of a previously executed operation. If you specify
      $reason, there will push installation $newstatus
    reason
          $ssn->reason();
      Returns reason of a previously executed operation.
      Now supported following values: DEFAULT, OK, UNAUTHORIZED, ERROR,
      SERVER_ERROR, NEW, TIMEOUT, LOGIN_INCORRECT, PASSWORD_INCORRECT,
      DECLINED, AUTH_REQUIRED, FORBIDDEN.
      For translating this values to regular form please use method
      reason_translate like that
    init
          $ssn->init( $usid, $needcreate );
      Internal method. Please do not use it
      Method returns status operation: 1 - successfully; 0 - not
      successfully
    toexpire
          $ssn->toexpire( $time );
      Returns expiration interval relative to ctime() form.
      If used with no arguments, returns the expiration interval if it was
      ever set. If no expiration was ever set, returns undef.
      All the time values should be given in the form of seconds. Following
      keywords are also supported for your convenience:
          +-----------+---------------+
          |   alias   |   meaning     |
          +-----------+---------------+
          |     s     |   Second      |
          |     m     |   Minute      |
          |     h     |   Hour        |
          |     d     |   Day         |
          |     w     |   Week        |
          |     M     |   Month       |
          |     y     |   Year        |
          +-----------+---------------+
      Examples:
          $ssn->toexpire("2h"); # expires in two hours
          $ssn->toexpire(3600); # expires in one hour
      Note: all the expiration times are relative to session's last access
      time, not to its creation time. To expire a session immediately, call
      delete() method.
CONFIGURATION
    Sample in file conf/auth.conf:
        
            expires +3m
            #sidkey usid
            #tplkey authorized
            #tplpfx auth
            #file   /document_root/session.db
            #dsn    dbi:SQLite:dbname=/document_root/session.db
        
HISTORY
    See Changes file
DEPENDENCIES
    MPMinus
TO DO
    See TODO file
BUGS
    * none noted
SEE ALSO
    MPMinus, CTK, Apache::Session, DBD::SQLite
AUTHOR
    Serż Minus (Sergey Lepenkov) http://www.serzik.com 
COPYRIGHT
    Copyright (C) 1998-2019 D&D Corporation. All Rights Reserved
LICENSE
    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.
    See LICENSE file and https://dev.perl.org/licenses/