/**
  * 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();
 }
Esempio n. 2
0
 /**
  * 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);
         }
     }
 }
Esempio n. 3
0
/** 
 * 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;
}