/** * executing the transaction (triggers, prepare SQL) * @access protected */ function doTransaction() { // destroy login related info unset($_SESSION['kt_login_id']); KT_unsetSessionVar('kt_login_id'); unset($_SESSION['kt_login_user']); KT_unsetSessionVar('kt_login_user'); unset($_SESSION['kt_login_level']); KT_unsetSessionVar('kt_login_level'); unset($_SESSION['KT_denied_pageuri']); KT_unsetSessionVar('KT_denied_pageuri'); unset($_SESSION['KT_denied_pagelevels']); KT_unsetSessionVar('KT_denied_pagelevels'); // destroy popup/upload/download info unset($_SESSION['tng_popup']); unset($_SESSION['tng_upload']); unset($_SESSION['tng_download']); // remove cookies $cookie_path = tNG_getRememberMePath(); setcookie("kt_login_id", "", time() - 3600, $cookie_path); setcookie("kt_login_test", "", time() - 3600, $cookie_path); unset($_COOKIE['kt_login_id']); unset($_COOKIE['kt_login_test']); if (is_array($GLOBALS['tNG_login_config_session'])) { $ses_arr = $GLOBALS['tNG_login_config_session']; foreach ($ses_arr as $ses_name => $ses_value) { unset($_SESSION[$ses_name]); KT_unsetSessionVar($ses_name); } } parent::doTransaction(); }
/** * Constructor. Sets the connection, the database name and other default values. * Also sets the transaction type. * @param object KT_Connection &$connection the connection object * @access public */ function tNG_login(&$connection) { parent::tNG_custom($connection); $this->transactionType = '_login'; //TODO: Check that $GLOBALS['tNG_login_config']['table'] really exist. If not, die w/error if ($GLOBALS['tNG_login_config']['table'] == "") { die("Internal error. Please configure your login table in InterAKT Control Panel > Login Settings."); } if ($GLOBALS['tNG_login_config']['pk_field'] == "" || $GLOBALS['tNG_login_config']['pk_type'] == "") { die("Internal error. Please configure your login primary key in InterAKT Control Panel > Login Settings."); } $this->setPrimaryKey($GLOBALS['tNG_login_config']['pk_field'], $GLOBALS['tNG_login_config']['pk_type']); $this->exportRecordset = true; $this->registerTrigger("AFTER", "Trigger_Login_CheckLogin", -20); if ($GLOBALS['tNG_login_config']['activation_field'] != "") { $this->registerTrigger("AFTER", "Trigger_Login_CheckUserActive", -16); } if (isset($GLOBALS['tNG_login_config']['registration_date_field']) && isset($GLOBALS['tNG_login_config']['expiration_interval_field']) && isset($GLOBALS['tNG_login_config']['expiration_interval_default']) && $GLOBALS['tNG_login_config']['registration_date_field'] != '' && $GLOBALS['tNG_login_config']['expiration_interval_default'] != '' && $GLOBALS['tNG_login_config']['expiration_interval_field'] != '') { $this->registerTrigger("AFTER", "Trigger_Login_Account_Expiration", -12); } $this->registerTrigger("AFTER", "Trigger_Login_AddDynamicFields", -6); $this->registerTrigger("AFTER", "Trigger_Login_SaveDataToSession", -4); $this->registerTrigger("AFTER", "Trigger_Login_AutoLogin", -2); if (isset($GLOBALS['tNG_login_config']['max_tries']) && isset($GLOBALS['tNG_login_config']['max_tries_field']) && isset($GLOBALS['tNG_login_config']['max_tries_disableinterval']) && isset($GLOBALS['tNG_login_config']['max_tries_disabledate_field']) && $GLOBALS['tNG_login_config']['max_tries'] != '' && $GLOBALS['tNG_login_config']['max_tries_field'] != '' && $GLOBALS['tNG_login_config']['max_tries_disableinterval'] != '' && $GLOBALS['tNG_login_config']['max_tries_disabledate_field'] != '') { $this->registerTrigger("AFTER", "Trigger_Login_MaxTriesCheck", -30); $this->registerTrigger("AFTER", "Trigger_Login_MaxTriesReset", 110); $this->registerTrigger("ERROR", "Trigger_Login_MaxTriesIncrement", -10); } if (isset($GLOBALS['tNG_login_config']['logger_table']) && isset($GLOBALS['tNG_login_config']['logger_pk']) && isset($GLOBALS['tNG_login_config']['logger_user_id']) && isset($GLOBALS['tNG_login_config']['logger_ip']) && isset($GLOBALS['tNG_login_config']['logger_datein']) && isset($GLOBALS['tNG_login_config']['logger_datelastactivity']) && isset($GLOBALS['tNG_login_config']['logger_session']) && $GLOBALS['tNG_login_config']['logger_table'] != '' && $GLOBALS['tNG_login_config']['logger_pk'] != '' && $GLOBALS['tNG_login_config']['logger_user_id'] != '' && $GLOBALS['tNG_login_config']['logger_ip'] != '' && $GLOBALS['tNG_login_config']['logger_datein'] != '' && $GLOBALS['tNG_login_config']['logger_datelastactivity'] != '' && $GLOBALS['tNG_login_config']['logger_session'] != '') { $this->registerTrigger("AFTER", "Trigger_Login_LoggerIn", 2); } }
/** * try to log in an user using the cookies; * @param object $connection object; * @return nothing */ function tNG_cookieLogin(&$connection) { tNG_clearSessionVars(); if (isset($_SESSION['kt_login_user'])) { if (isset($GLOBALS['tNG_login_config']['logger_table']) && isset($GLOBALS['tNG_login_config']['logger_pk']) && isset($GLOBALS['tNG_login_config']['logger_user_id']) && isset($GLOBALS['tNG_login_config']['logger_ip']) && isset($GLOBALS['tNG_login_config']['logger_datein']) && isset($GLOBALS['tNG_login_config']['logger_datelastactivity']) && isset($GLOBALS['tNG_login_config']['logger_session']) && $GLOBALS['tNG_login_config']['logger_table'] != '' && $GLOBALS['tNG_login_config']['logger_pk'] != '' && $GLOBALS['tNG_login_config']['logger_user_id'] != '' && $GLOBALS['tNG_login_config']['logger_ip'] != '' && $GLOBALS['tNG_login_config']['logger_datein'] != '' && $GLOBALS['tNG_login_config']['logger_datelastactivity'] != '' && $GLOBALS['tNG_login_config']['logger_session'] != '') { $tNG = new tNG_custom($connection); $tNG->addColumn('kt_login_id', 'STRING_TYPE', 'EXPRESSION', '{SESSION.kt_login_id}'); $tNG->executeTransaction(); Trigger_Login_LoggerOut($tNG); return; } } if (isset($_COOKIE['kt_login_id']) && isset($_COOKIE['kt_login_test'])) { // make an instance of the transaction object $loginTransaction_cookie = new tNG_login($connection); // register triggers // automatically start the transaction $loginTransaction_cookie->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "VALUE", "1"); // add columns $loginTransaction_cookie->setLoginType('cookie'); $loginTransaction_cookie->addColumn("kt_login_id", $GLOBALS['tNG_login_config']['pk_type'], "COOKIE", "kt_login_id"); $loginTransaction_cookie->addColumn("kt_login_test", "STRING_TYPE", "COOKIE", "kt_login_test"); $loginTransaction_cookie->executeTransaction(); } }