Amiro.CMS API Reference
Amiro.Ru / Manual
Loading search...

The AMI_Session class

• Introduction

Session class.

• Class synopsis

AMI_Session {
/* Methods */
// Returns current session id.
public getId ( ) returns string|false;
// Returns authorized user object or null if visitor is not authorized.
public getUserData ( [ bool $asRawData = FALSE ] ) returns AmiUsers_Users_TableItem|array|null;
// Return flag logged in current user in this session or not.
public isLoggedIn ( ) returns bool;
// Returns is session was started or not.
public isStarted ( ) returns bool;
// Login current user using login and password.
public login ( string $userName, string $password ) returns bool;
// Login user depends validate only by login.
public loginAsUser ( string $userName ) returns bool;
// Logout current user.
public logout ( ) returns void;
// Requires authorized user.
public requireAuthorizedUser ( [ string $url = '' ], [ string $backURL = '' ], [ string $shortSessionId = '' ] ) returns void;
// Sets session variables prefix to isolate data between different modules.
public setPrefix ( string $prefix ) returns AMI_Session;
// Starts session.
public start ( [ int $time = 0 ], [ bool $doCreate = false ] ) returns array;
// Stops session.
public stop ( ) returns void;
// Store sessions data.
public store ( ) returns void;
// Property getter.
public __get ( string $name ) returns mixed;
// Property getter.
public __isset ( string $name ) returns bool;
// Property setter.
public __set ( string $name, mixed $value ) returns void;
// Property setter.
public __unset ( string $name ) returns void;
}

• Class Details

  Example:
  •  $oSession AMI::getSingleton('env/session');
  •  if(!$oSession->isStarted()){
  •      // start session if it is not started
  •      $oSession->start();
  •      // set session variable
  •      $oSession->myCounter 0;
  •  }
  •  $oSession->myCounter++;
  •  if($oSession->myCounter 100){
  •      $oSession->stop();
  •  }
Tags:
since 5.10.0
resource env/session AMI::getSingleton('env/session')

• Class Methods

// Returns current session id.
public getId ( ) returns string|false;
// Returns authorized user object or null if visitor is not authorized.
public getUserData ( [ bool $asRawData = FALSE ] ) returns AmiUsers_Users_TableItem|array|null;
  • bool $asRawData
    Flag specifiying to return raw session data, not object (since 7.0.0)
// Return flag logged in current user in this session or not.
public isLoggedIn ( ) returns bool;
Tags:
since 5.12.0
// Returns is session was started or not.
public isStarted ( ) returns bool;
// Login current user using login and password.
public login ( string $userName, string $password ) returns bool;
  • string $userName
    User name
  • string $password
    User password
  Example:
Tags:
since 5.12.0
// Login user depends validate only by login.
public loginAsUser ( string $userName ) returns bool;
  • string $userName
    User name
Usefull for remote application integration. When password is unknown, but user valid and remote user id present.

  Example:
  •  $oUserTable AMI::getResourceModel('users/table');
  •  $oUser $oUserTable->getItem();
  •  
  •  $mySession AMI::getSingleton('env/session');
  •  $mySession->start();
  •  
  •  $source_app_id 2;
  •  $source_app_user_id $_REQUEST['valid_remote_login'];
  •  
  •  if($uid $oUserTable->checkRemoteUserExists($source_app_id$source_app_user_id)){
  •  
  •          $mySession->loginAsUser($oUserTable->find($uid)->login);
  •  
  •  }else{
  •          $new_user_login $source_app_user_id;
  •          $uid_i 2;
  •  
  •          while($oUserTable->checkUserExists($new_user_login)){
  •                  $new_user_login $source_app_user_id.($uid_i++);
  •          }
  •  
  •          $oUser->username $new_user_login;
  •          $oUser->password $oUser->generatePassword();
  •          $oUser->firstname '';
  •          $oUser->lastname '';
  •          $oUser->email  $new_user_login.'@unknown.mail';
  •          $oUser->source_app_id $source_app_id;
  •          $oUser->source_app_user_id $source_app_user_id;
  •  
  •          if($oUser->save()){
  •                  if($mySession->loginAsUser($new_user_login)){
  •                      header('Location: /members');
  •                  }
  •          }
  •  }
Tags:
since 5.12.0
// Logout current user.
public logout ( ) returns void;
See AMI_Session::login() for usage example.
Tags:
since 5.12.0
// Requires authorized user.
public requireAuthorizedUser ( [ string $url = '' ], [ string $backURL = '' ], [ string $shortSessionId = '' ] ) returns void;
  • string $url
    URL to redirect for authorization
  • string $backURL
    URL to return after successful authorization
  • string $shortSessionId
    Reserved, will be described later
Tags:
todo Describe $shortSessionId
since 5.12.8
// Sets session variables prefix to isolate data between different modules.
public setPrefix ( string $prefix ) returns AMI_Session;
  • string $prefix
    Session variables prefix
  Example:
  •  $oSession AMI::getSingleton('env/session');
  •  $oSession->test 1;
  •  $oSession->setPrefix('namespace2');
  •  $oSession->test 2;
  •  $oSession->store();
  •  // ...
  •  d::vd($oSession->test))// 2
  •  $oSession->setPrefix('');
  •  d::vd($oSession->test))// 1
// Starts session.
public start ( [ int $time = 0 ], [ bool $doCreate = false ] ) returns array;
  • int $time
    Expiration time (in minutes)
  • bool $doCreate
    Allow to create new session (since 5.12.8)
Return hash where key is cookie session id name and value is cookie session id value.
See AMI_Session::login() for usage example.
// Stops session.
public stop ( ) returns void;
// Store sessions data.
public store ( ) returns void;
  Example:
  •  $oSession AMI::getSingleton('env/session');
  •  $oSession->start();
  •  d::vd($oSession->test)// Previous random value after page reload.
  •  $oSession->test rand(1,10);
  •  $oSession->store();
Tags:
since 5.12.0
// Property getter.
public __get ( string $name ) returns mixed;
  • string $name
    Variable name
Property access implementation.
// Property getter.
public __isset ( string $name ) returns bool;
  • string $name
    Variable name
Property access implementation.
// Property setter.
public __set ( string $name, mixed $value ) returns void;
  • string $name
    Variable name
  • mixed $value
    Variable value
Property access implementation.
// Property setter.
public __unset ( string $name ) returns void;
  • string $name
    Variable name
Property access implementation.