2016-06-24 16 views
0

Ich bin dabei, zu versuchen, unseren benutzerdefinierten Code aus dem Kern zu bekommen.Wie kann ich diesen benutzerdefinierten Code aus dem Drupal Core-Benutzermodul entfernen?

In dieser Funktion ich die alte Session-ID erfassen in ein Projekt der Benutzer gearbeitet haben, während nicht angemeldet zu aktualisieren

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); 
} 

die rechte Seite vor Linien und direkt nach sess_regenerate().

Antwort

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

Soweit ich das beurteilen kann, müssten Sie Ihren eigenen Login-Prozess schreiben, um dies sauber in D6 zu erreichen. Ich würde wahrscheinlich eine hook_form_alter() machen und den Übermittlungshandler auf dem Anmeldeformular durch mein eigenes ersetzen.