コード例 #1
0
ファイル: auth.php プロジェクト: heg-arc-ne/cscart
        return array(CONTROLLER_STATUS_REDIRECT, fn_url());
    }
    $stored_user_login = fn_restore_post_data('user_login');
    if (!empty($stored_user_login)) {
        Registry::get('view')->assign('stored_user_login', $stored_user_login);
    }
    if (AREA != 'A') {
        fn_add_breadcrumb(__('sign_in'));
    }
    Registry::get('view')->assign('view_mode', 'simple');
} elseif ($mode == 'password_change' && AREA == 'A') {
    if (defined('AJAX_REQUEST') && empty($auth)) {
        exit;
    }
    if (empty($auth['user_id'])) {
        return array(CONTROLLER_STATUS_REDIRECT, fn_url());
    }
    $profile_id = 0;
    $user_data = fn_get_user_info($auth['user_id'], true, $profile_id);
    Registry::get('view')->assign('user_data', $user_data);
    Registry::get('view')->assign('view_mode', 'simple');
} elseif ($mode == 'change_login') {
    $auth = $_SESSION['auth'];
    if (!empty($auth['user_id'])) {
        fn_log_user_logout($auth);
    }
    unset($_SESSION['cart']['user_data']);
    fn_login_user();
    fn_delete_session_data(AREA . '_user_id', AREA . '_password');
    return array(CONTROLLER_STATUS_OK, 'checkout.checkout');
}
コード例 #2
0
ファイル: Session.php プロジェクト: ambient-lounge/site
 /**
  * Expire session, move it to stored sessions and log out user
  *
  * @param string $sess_id session ID
  * @param array  $session session data
  */
 public static function expire($sess_id, $session)
 {
     $sess_data = Session::decode($session['data']);
     db_query('REPLACE INTO ?:stored_sessions ?e', array('session_id' => $sess_id, 'data' => self::encode(array('settings' => $sess_data['settings'])), 'expiry' => $session['expiry']));
     if (!empty($sess_data['auth'])) {
         fn_log_user_logout($sess_data['auth'], $session['expiry']);
     }
 }
コード例 #3
0
ファイル: fn.users.php プロジェクト: askzap/ultimate
/**
 * @param array $auth
 */
function fn_user_logout($auth)
{
    // Regenerate session_id for security reasons
    fn_save_cart_content($_SESSION['cart'], $auth['user_id']);
    Session::regenerateId();
    fn_init_user();
    $auth = $_SESSION['auth'];
    if (!empty($auth['user_id'])) {
        fn_log_user_logout($auth);
    }
    unset($_SESSION['auth']);
    fn_clear_cart($_SESSION['cart'], false, true);
    fn_delete_session_data(AREA . '_user_id', AREA . '_password');
    unset($_SESSION['product_notifications']);
    fn_login_user();
    // need to fill $_SESSION['auth'] array for anonymous user
}
コード例 #4
0
ファイル: fn.users.php プロジェクト: ambient-lounge/site
/**
 * @param array $auth
 */
function fn_user_logout($auth)
{
    // Regenerate session_id for security reasons
    fn_save_cart_content(Tygh::$app['session']['cart'], $auth['user_id']);
    Tygh::$app['session']->regenerateID();
    fn_init_user();
    $auth = Tygh::$app['session']['auth'];
    if (!empty($auth['user_id'])) {
        fn_log_user_logout($auth);
    }
    unset(Tygh::$app['session']['auth']);
    fn_clear_cart(Tygh::$app['session']['cart'], false, true);
    fn_delete_session_data(AREA . '_user_id', AREA . '_password');
    unset(Tygh::$app['session']['product_notifications']);
    fn_login_user();
    // need to fill Tygh::$app['session']['auth'] array for anonymous user
    /**
     * Allows to perform any actions after user logout.
     *
     * @param array $auth Auth data from session
     */
    fn_set_hook('user_logout_after', $auth);
}
コード例 #5
0
 /**
  * Garbage collector - move expired sessions to session archive
  *
  * @param int $max_lifetime session lifetime
  *
  * @return boolean always true
  */
 public function gc($max_lifetime)
 {
     // Move expired sessions to sessions storage
     db_query('REPLACE INTO ?:stored_sessions SELECT * FROM ?:sessions WHERE expiry < ?i', TIME);
     $sessions = db_get_array('SELECT * FROM ?:sessions WHERE expiry < ?i', TIME);
     if ($sessions) {
         foreach ($sessions as $entry) {
             fn_log_user_logout($entry, Session::decode($entry['data']));
         }
         // delete old sessions
         db_query('DELETE FROM ?:sessions WHERE expiry < ?i', TIME);
     }
     // Cleanup sessions storage
     db_query('DELETE FROM ?:stored_sessions WHERE expiry < ?i', TIME - SESSIONS_STORAGE_ALIVE_TIME);
     return true;
 }
コード例 #6
0
 static function gc($max_lifetime)
 {
     // Move expired sessions to sessions storage
     db_query('REPLACE INTO ?:stored_sessions SELECT * FROM ?:sessions WHERE expiry < ?i', TIME);
     $sessions = db_get_array('SELECT * FROM ?:sessions WHERE expiry < ?i', TIME);
     if ($sessions) {
         foreach ($sessions as $entry) {
             fn_log_user_logout($entry, self::decode($entry['data']));
         }
         // delete old sessions
         db_query("DELETE FROM ?:sessions WHERE expiry < ?i", TIME);
     }
     // Delete custom files (garbage) from unlogged customers
     $files = fn_get_dir_contents(DIR_CUSTOM_FILES . 'sess_data', false, true);
     if (!empty($files)) {
         foreach ($files as $file) {
             $fdate = fileatime(DIR_CUSTOM_FILES . 'sess_data/' . $file);
             if ($fdate < TIME - SESSIONS_STORAGE_ALIVE_TIME) {
                 fn_rm(DIR_CUSTOM_FILES . 'sess_data/' . $file);
             }
         }
     }
     // Cleanup sessions storage
     db_query('DELETE FROM ?:stored_sessions WHERE expiry < ?i', TIME - SESSIONS_STORAGE_ALIVE_TIME);
     return true;
 }