/** * 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(); }
/** * Unset the session variables that have to do with user login; * @return nothing * @access public */ function unsetAll() { 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'); // 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); } } }
/** * Add the login user related columns setted on control panel to the transaction; * @param object tNG transaction object * @return nothing * @access public */ function Trigger_Login_AddDynamicFields(&$tNG) { // register all the columns from the recordset as transaction columns (to be available later) $rs = $tNG->transactionResult; $tNG->addColumn("kt_login_id", "STRING_TYPE", "VALUE", $rs->Fields("kt_login_id")); $tNG->addColumn("kt_login_user", "STRING_TYPE", "VALUE", $rs->Fields("kt_login_user")); $tNG->addColumn("kt_login_password_db", "STRING_TYPE", "VALUE", $rs->Fields("kt_login_password")); if ($GLOBALS['tNG_login_config']['level_field'] != "") { $tNG->addColumn("kt_login_level", "STRING_TYPE", "VALUE", $rs->Fields($GLOBALS['tNG_login_config']['level_field'])); } // must add {kt_login_redirect} $login_redirect = ''; switch ($tNG->loginType) { case 'form': case 'activation': $login_redirect = ""; if (isset($_SESSION['KT_denied_pageuri']) && is_array($_SESSION['KT_denied_pagelevels'])) { // if restrict using levels is used if ($GLOBALS['tNG_login_config']['level_field'] != "") { $level_column = $GLOBALS['tNG_login_config']['level_field']; $level_value = $tNG->transactionResult->Fields($level_column); $arr_allowed_levels = $_SESSION['KT_denied_pagelevels']; // check if the current user can be redirected to previously denied page if (count($arr_allowed_levels) > 0) { if (in_array($level_value, $arr_allowed_levels)) { $login_redirect = $_SESSION['KT_denied_pageuri']; } else { // redirect to the denied page will result into another denied page, so don't redirect } } else { // levels array has no elements - acccess is allowed to all logged users $login_redirect = $_SESSION['KT_denied_pageuri']; } } else { // no levels restriction is used, so we can redirect to previously denied page $login_redirect = $_SESSION['KT_denied_pageuri']; } unset($_SESSION['KT_denied_pageuri']); KT_unsetSessionVar('KT_denied_pageuri'); unset($_SESSION['KT_denied_pagelevels']); KT_unsetSessionVar('KT_denied_pagelevels'); } if ($login_redirect == "") { $relPath = ''; if (isset($tNG->dispatcher) && isset($tNG->dispatcher->relPath)) { $relPath = KT_makeIncludedURL($tNG->dispatcher->relPath); } if ($GLOBALS['tNG_login_config']['level_field'] != "") { $level_column = $GLOBALS['tNG_login_config']['level_field']; $level_value = $tNG->transactionResult->Fields($level_column); if (is_array($GLOBALS['tNG_login_config_redirect_success']) && isset($GLOBALS['tNG_login_config_redirect_success'][$level_value]) and $GLOBALS['tNG_login_config_redirect_success'][$level_value] != "") { $login_redirect = $relPath . $GLOBALS['tNG_login_config_redirect_success'][$level_value]; } else { $login_redirect = $relPath . $GLOBALS['tNG_login_config']['redirect_success']; } } else { $login_redirect = $relPath . $GLOBALS['tNG_login_config']['redirect_success']; } } break; case 'cookie': // cookie login doesn't use redirect break; } $tNG->addColumn("kt_login_redirect", "STRING_TYPE", "VALUE", $login_redirect); return null; }