diff --git a/workflow/engine/classes/model/LoginLog.php b/workflow/engine/classes/model/LoginLog.php index 2ae22fec0..c8bc914ca 100644 --- a/workflow/engine/classes/model/LoginLog.php +++ b/workflow/engine/classes/model/LoginLog.php @@ -27,26 +27,19 @@ class LoginLog extends BaseLoginLog */ public function create($aData) { - $con = Propel::getConnection("workflow"); + $con = Propel::getConnection( LoginLogPeer::DATABASE_NAME ); try { - $tableName = 'LOGIN_LOG'; - $columns = array('LOG_UID', 'LOG_STATUS', 'LOG_IP', 'LOG_SID', 'LOG_INIT_DATE', 'LOG_CLIENT_HOSTNAME', 'USR_UID'); - - $sql = "INSERT INTO " . $tableName - . " (" . implode(",", $columns) . ")" - . " VALUES (" - . "'" . $aData['LOG_UID'] . "'" . ',' - . "'" . $aData['LOG_STATUS'] . "'" . ',' - . "'" . $aData['LOG_IP'] . "'" . ',' - . "'" . $aData['LOG_SID'] . "'" . ',' - . "'" . $aData['LOG_INIT_DATE'] . "'" . ',' - . "'" . $aData['LOG_CLIENT_HOSTNAME'] . "'" . ',' - . "'" . $aData['USR_UID'] . "'" . - ")"; - - $stmt = $con->createStatement(); - $stmt->executeQuery($sql); - return true; + $this->fromArray( $aData, BasePeer::TYPE_FIELDNAME ); + if ($this->validate()) { + $con->begin(); + $result = $this->save(); + $con->commit(); + } else { + $e = new Exception( "Failed Validation in class " . get_class( $this ) . "." ); + $e->aValidationFailures = $this->getValidationFailures(); + throw ($e); + } + return $result; } catch (Exception $e) { $con->rollback(); throw ($e); @@ -75,7 +68,7 @@ class LoginLog extends BaseLoginLog $con = Propel::getConnection( LoginLogPeer::DATABASE_NAME ); try { $con->begin(); - $this->load( $fields['LOG_UID'] ); + $this->load( $fields['LOG_ID'] ); $this->fromArray( $fields, BasePeer::TYPE_FIELDNAME ); if ($this->validate()) { $result = $this->save(); diff --git a/workflow/engine/classes/model/LoginLogPeer.php b/workflow/engine/classes/model/LoginLogPeer.php index a88f410f6..c0c65b39d 100644 --- a/workflow/engine/classes/model/LoginLogPeer.php +++ b/workflow/engine/classes/model/LoginLogPeer.php @@ -24,20 +24,6 @@ */ class LoginLogPeer extends BaseLoginLogPeer { - public static function retrieveByPK($pk, $con = null) - { - if ($con === null) { - $con = Propel::getConnection(self::DATABASE_NAME); - } - $criteria = new Criteria(LoginLogPeer::DATABASE_NAME); - - $criteria->add(LoginLogPeer::LOG_UID, $pk); - - - $v = LoginLogPeer::doSelect($criteria, $con); - - return !empty($v) > 0 ? $v[0] : null; - } } diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index ea44667a9..abb37c1a3 100644 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -2197,6 +2197,16 @@ + + + + + + + + + + diff --git a/workflow/engine/controllers/main.php b/workflow/engine/controllers/main.php index 15435cc52..88ca6494e 100644 --- a/workflow/engine/controllers/main.php +++ b/workflow/engine/controllers/main.php @@ -144,6 +144,7 @@ class Main extends Controller if ($aRow) { if ($aRow['LOG_STATUS'] != 'CLOSED' && $aRow['LOG_END_DATE'] == null) { $weblog = new LoginLog(); + $aLog['LOG_ID'] = $aRow['LOG_ID']; $aLog['LOG_UID'] = $aRow['LOG_UID']; $aLog['LOG_STATUS'] = 'CLOSED'; $aLog['LOG_IP'] = $aRow['LOG_IP']; diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 942803481..b703a8504 100644 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -1014,7 +1014,7 @@ DROP TABLE IF EXISTS `LOGIN_LOG`; CREATE TABLE `LOGIN_LOG` ( - `LOG_ID` INTEGER NOT NULL AUTO_INCREMENT, + `LOG_ID` INTEGER NOT NULL AUTO_INCREMENT, `LOG_UID` VARCHAR(32) default '' NOT NULL, `LOG_STATUS` VARCHAR(100) default '' NOT NULL, `LOG_IP` VARCHAR(15) default '' NOT NULL, @@ -1023,7 +1023,8 @@ CREATE TABLE `LOGIN_LOG` `LOG_END_DATE` DATETIME, `LOG_CLIENT_HOSTNAME` VARCHAR(100) default '' NOT NULL, `USR_UID` VARCHAR(32) default '' NOT NULL, - PRIMARY KEY (`LOG_ID`) + PRIMARY KEY (`LOG_ID`), + KEY `indexLoginLogSelect`(`LOG_SID`, `USR_UID`, `LOG_STATUS`, `LOG_END_DATE`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- #-- USERS_PROPERTIES diff --git a/workflow/engine/methods/login/login.php b/workflow/engine/methods/login/login.php index 358183331..d770624c3 100644 --- a/workflow/engine/methods/login/login.php +++ b/workflow/engine/methods/login/login.php @@ -88,6 +88,7 @@ if (isset ($_SESSION['USER_LOGGED'])) { $weblog = new LoginLog(); $endDate = date('Y-m-d H:i:s'); $aLog = array(); + $aLog['LOG_ID'] = $aRow['LOG_ID']; $aLog['LOG_UID'] = $aRow['LOG_UID']; $aLog['LOG_STATUS'] = 'CLOSED'; $aLog['LOG_IP'] = $aRow['LOG_IP'];