diff --git a/workflow/engine/classes/class.sessions.php b/workflow/engine/classes/class.sessions.php index 283ea6164..e4912f36b 100755 --- a/workflow/engine/classes/class.sessions.php +++ b/workflow/engine/classes/class.sessions.php @@ -1,11 +1,12 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * along with this program. If not, see . + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * + * */ require_once 'classes/model/Session.php'; + /** * Sessions - Sessions class + * * @package workflow.engine.ProcessMaker * @author Everth S. Berrios Morales * @copyright 2008 COLOSA */ -class Sessions { - - protected $tmpfile; - private $sessionId; - private $globals; - - /** - * This function is the constructor of the Sessions class - * @param string $sSessionId - * @return void - */ - public function __construct($sSessionId=NULL){ - $this->sessionId = $sSessionId; - } - - /** - * This function gets the user session - * - * - * @name getSessionUser - * - * @param string sSessionId - * @return array - */ - public function getSessionUser($sSessionId=NULL) - { - try - { - if($sSessionId != NULL){ - $this->sessionId = $sSessionId; - } else if($this->sessionId == NULL){ - throw new Exception('session id was not set.'); - } - - $oCriteria = new Criteria('workflow'); - $oCriteria->addSelectColumn(SessionPeer::USR_UID); - $oCriteria->addSelectColumn(SessionPeer::SES_STATUS); - $oCriteria->addSelectColumn(SessionPeer::SES_DUE_DATE); - $oCriteria->add(SessionPeer::SES_UID, $this->sessionId); - - $oDataset = SessionPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $oDataset->next(); - $aRow = $oDataset->getRow(); - - if( !is_array($aRow) ){ - $this->deleteTmpfile(); - } - return $aRow; - } - catch (Exception $oError) { - throw($oError); - } - } - - /** - * This function checks the user session - * - * - * @name verifySession - * - * @param string sSessionId - * @return array - */ - public function verifySession($sSessionId=NULL) - { - try - { - if($sSessionId != NULL){ - $this->sessionId = $sSessionId; - } else if($this->sessionId == NULL){ - throw new Exception('session id was not set.'); - } - - $date=date('Y-m-d H:i:s'); - $oCriteria = new Criteria('workflow'); - $oCriteria->addSelectColumn(SessionPeer::USR_UID); - $oCriteria->addSelectColumn(SessionPeer::SES_STATUS); - $oCriteria->addSelectColumn(SessionPeer::SES_DUE_DATE); - $oCriteria->add(SessionPeer::SES_UID, $this->sessionId); - $oCriteria->add(SessionPeer::SES_STATUS, 'ACTIVE'); - $oCriteria->add(SessionPeer::SES_DUE_DATE, $date, Criteria::GREATER_EQUAL); - - $oDataset = SessionPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $oDataset->next(); - $aRow = $oDataset->getRow(); +class Sessions +{ - if( !is_array($aRow) ){ - $this->deleteTmpfile(); - } - - return $aRow; - } - catch (Exception $oError) { - throw($oError); - } - } - - /** - * This function registers into globals variables - * - * - * @name registerGlobal - * - * @param string $name - * @param string $value - * @return void - */ - public function registerGlobal($name, $value) - { - $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; - - if($this->sessionId == NULL){ - throw new Exception('session id was not set.'); - } - - $tmpfile_content = ''; - if( is_file($this->tmpfile) && trim(file_get_contents($this->tmpfile)) != '' ) { - $tmpfile_content = file_get_contents($this->tmpfile); - } - - //getting the global array - if( $tmpfile_content != ''){ - $this->globals = unserialize($tmpfile_content); - } else { - $this->globals = Array(); - } - - //registering the new global variable - $this->globals[$name] = $value; - - //saving the global array - $tmpfile_content = serialize($this->globals); - file_put_contents($this->tmpfile, $tmpfile_content); - - } - - /** - * This function gets a global variable - * - * - * @name getGlobal - * - * @param string $name - * @return string - */ - public function getGlobal($name) - { - $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; - - if($this->sessionId == NULL){ - throw new Exception('session id was not set.'); - } - - $tmpfile_content = ''; - if( is_file($this->tmpfile) && trim(file_get_contents($this->tmpfile)) != '' ) { - $tmpfile_content = file_get_contents($this->tmpfile); - } - - //getting the global array - if( $tmpfile_content != ''){ - $this->globals = unserialize($tmpfile_content); - } else { - $this->globals = Array(); - } - - //getting the new global variable - if( isset($this->globals[$name]) ){ - return $this->globals[$name]; - } else { - return ''; - } - } - - /** - * This function gets all globals variables - * - * - * @name getGlobals - * - * @param string $name - * @return array - */ - public function getGlobals() - { - $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; - - if($this->sessionId == NULL){ - throw new Exception('session id was not set.'); - } - - $tmpfile_content = ''; - if( is_file($this->tmpfile) && trim(file_get_contents($this->tmpfile)) != '' ) { - $tmpfile_content = file_get_contents($this->tmpfile); - } - - //getting the global array - if( $tmpfile_content != ''){ - $this->globals = unserialize($tmpfile_content); - } else { - $this->globals = Array(); - } - return $this->globals; - } - - /** - * This function removes a temporal file - * - * - * @name deleteTmpfile - * - * param - * @return void - */ - private function deleteTmpfile(){ - if($this->sessionId == NULL){ - throw new Exception('session id was not set.'); + protected $tmpfile; + private $sessionId; + private $globals; + + /** + * This function is the constructor of the Sessions class + * + * @param string $sSessionId + * @return void + */ + public function __construct ($sSessionId = NULL) + { + $this->sessionId = $sSessionId; } - $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; - @unlink($this->tmpfile); - } - + + /** + * This function gets the user session + * + * + * @name getSessionUser + * + * @param string sSessionId + * @return array + */ + public function getSessionUser ($sSessionId = NULL) + { + try { + if ($sSessionId != NULL) { + $this->sessionId = $sSessionId; + } else if ($this->sessionId == NULL) { + throw new Exception( 'session id was not set.' ); + } + + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->addSelectColumn( SessionPeer::USR_UID ); + $oCriteria->addSelectColumn( SessionPeer::SES_STATUS ); + $oCriteria->addSelectColumn( SessionPeer::SES_DUE_DATE ); + $oCriteria->add( SessionPeer::SES_UID, $this->sessionId ); + + $oDataset = SessionPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next(); + $aRow = $oDataset->getRow(); + + if (! is_array( $aRow )) { + $this->deleteTmpfile(); + } + return $aRow; + } catch (Exception $oError) { + throw ($oError); + } + } + + /** + * This function checks the user session + * + * + * @name verifySession + * + * @param string sSessionId + * @return array + */ + public function verifySession ($sSessionId = NULL) + { + try { + if ($sSessionId != NULL) { + $this->sessionId = $sSessionId; + } else if ($this->sessionId == NULL) { + throw new Exception( 'session id was not set.' ); + } + + $date = date( 'Y-m-d H:i:s' ); + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->addSelectColumn( SessionPeer::USR_UID ); + $oCriteria->addSelectColumn( SessionPeer::SES_STATUS ); + $oCriteria->addSelectColumn( SessionPeer::SES_DUE_DATE ); + $oCriteria->add( SessionPeer::SES_UID, $this->sessionId ); + $oCriteria->add( SessionPeer::SES_STATUS, 'ACTIVE' ); + $oCriteria->add( SessionPeer::SES_DUE_DATE, $date, Criteria::GREATER_EQUAL ); + + $oDataset = SessionPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next(); + $aRow = $oDataset->getRow(); + + if (! is_array( $aRow )) { + $this->deleteTmpfile(); + } + + return $aRow; + } catch (Exception $oError) { + throw ($oError); + } + } + + /** + * This function registers into globals variables + * + * + * @name registerGlobal + * + * @param string $name + * @param string $value + * @return void + */ + public function registerGlobal ($name, $value) + { + $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; + + if ($this->sessionId == NULL) { + throw new Exception( 'session id was not set.' ); + } + + $tmpfile_content = ''; + if (is_file( $this->tmpfile ) && trim( file_get_contents( $this->tmpfile ) ) != '') { + $tmpfile_content = file_get_contents( $this->tmpfile ); + } + + //getting the global array + if ($tmpfile_content != '') { + $this->globals = unserialize( $tmpfile_content ); + } else { + $this->globals = Array (); + } + + //registering the new global variable + $this->globals[$name] = $value; + + //saving the global array + $tmpfile_content = serialize( $this->globals ); + file_put_contents( $this->tmpfile, $tmpfile_content ); + + } + + /** + * This function gets a global variable + * + * + * @name getGlobal + * + * @param string $name + * @return string + */ + public function getGlobal ($name) + { + $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; + + if ($this->sessionId == NULL) { + throw new Exception( 'session id was not set.' ); + } + + $tmpfile_content = ''; + if (is_file( $this->tmpfile ) && trim( file_get_contents( $this->tmpfile ) ) != '') { + $tmpfile_content = file_get_contents( $this->tmpfile ); + } + + //getting the global array + if ($tmpfile_content != '') { + $this->globals = unserialize( $tmpfile_content ); + } else { + $this->globals = Array (); + } + + //getting the new global variable + if (isset( $this->globals[$name] )) { + return $this->globals[$name]; + } else { + return ''; + } + } + + /** + * This function gets all globals variables + * + * + * @name getGlobals + * + * @param string $name + * @return array + */ + public function getGlobals () + { + $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; + + if ($this->sessionId == NULL) { + throw new Exception( 'session id was not set.' ); + } + + $tmpfile_content = ''; + if (is_file( $this->tmpfile ) && trim( file_get_contents( $this->tmpfile ) ) != '') { + $tmpfile_content = file_get_contents( $this->tmpfile ); + } + + //getting the global array + if ($tmpfile_content != '') { + $this->globals = unserialize( $tmpfile_content ); + } else { + $this->globals = Array (); + } + return $this->globals; + } + + /** + * This function removes a temporal file + * + * + * @name deleteTmpfile + * + * param + * @return void + */ + private function deleteTmpfile () + { + if ($this->sessionId == NULL) { + throw new Exception( 'session id was not set.' ); + } + $this->tmpfile = G::sys_get_temp_dir() . PATH_SEP . "pm-rg-{$this->sessionId}"; + @unlink( $this->tmpfile ); + } + }