2016-06-24 5 views
0

カスタムコードをコアから取り出そうとしています。私がログインしていない状態で、ユーザが作業されている可能性があり、プロジェクトを更新するために、古いセッションIDをキャプチャし、この関数でこのカスタムコードをdrupalコアユーザーモジュールから移動するにはどうすればよいですか?

sess_regenerate後

function user_authenticate_finalize(&$edit) { 
    global $user; 
    watchdog('user', 'Session opened for %name.', array('%name' => $user->name)); 
    // Update the user table timestamp noting user has logged in. 
    // This is also used to invalidate one-time login links. 
    $user->login = time(); 
    db_query("UPDATE {users} SET login = %d WHERE uid = %d", $user->login, $user->uid); 

    $old_session_id = session_id(); //THIS LINE NEEDS TO BE MOVED 

    // Regenerate the session ID to prevent against session fixation attacks. 
    sess_regenerate(); 

    tf_user_new_session_id($user, $old_session_id); //THIS LINE NEEDS TO BE MOVED 

    user_module_invoke('login', $edit, $user); 
} 

直前のラインと右の()

答えて

0
function tf_user_user($op, &$edit, &$account, $category = NULL) 
{ 
    $current_session = session_id(); 

    if ('login' == $op) 
    { 
    setcookie('session_id_anonymous', $current_session, time() + 86400); 
    } 
    if ('load' == $op) 
    { 
    if (isset($_COOKIE['session_id_anonymous']) && $_COOKIE['session_id_anonymous'] != $current_session) 
    { 
     tf_user_new_session_id($account->uid, $_COOKIE['session_id_anonymous'], $current_session); 

     setcookie('session_id_anonymous', $current_session, time() - 3600); 
    } 
    } 
    //more code 
} 
0

私が知る限り、D6でこれを完全に達成するには、独自のログインプロセスを作成する必要があります。私はおそらくhook_form_alter()を実行し、ログインフォームのサブミットハンドラを自分のものに置き換えます。

関連する問題