/**
  * 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();
 }
Exemple #2
0
 /**
  * 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);
     }
 }
Exemple #3
0
/**
 * 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();
    }
}