### Eclipse Workspace Patch 1.0 #P drupal-head Index: includes/session.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/session.inc,v retrieving revision 1.42 diff -u -r1.42 session.inc --- includes/session.inc 12 Aug 2007 15:55:35 -0000 1.42 +++ includes/session.inc 15 Nov 2007 19:29:08 -0000 @@ -48,6 +48,7 @@ function sess_read($key) { else { $session = isset($user->session) ? $user->session : ''; $user = drupal_anonymous_user($session); + setcookie('drupal_login_check', TRUE, time() + 31536000, '/'); } return $user->session; Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.863 diff -u -r1.863 user.module --- modules/user/user.module 14 Nov 2007 16:01:30 -0000 1.863 +++ modules/user/user.module 15 Nov 2007 19:29:10 -0000 @@ -894,6 +894,13 @@ function user_menu() { 'type' => MENU_LOCAL_TASK, 'file' => 'user.pages.inc', ); + $items['user/no_cookie'] = array( + 'title' => 'Please Enable Cookies!', + 'page callback' => 'user_no_cookie', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + 'file' => 'user.pages.inc', + ); $items['user/reset/%/%/%'] = array( 'title' => 'Reset password', 'page callback' => 'drupal_get_form', @@ -1244,7 +1251,7 @@ function user_authenticate($name, $pass) } /** - * A validate handler on the login form. Update user's login timestamp, fire + * A submit handler on the login form. Update user's login timestamp, fire * hook_user('login), and generate new session ID. */ function user_login_submit($form, &$form_state) { @@ -1259,7 +1266,10 @@ function user_login_submit($form, &$form sess_regenerate(); $form_state['redirect'] = 'user/'. $user->uid; - return; + } + if (!isset($_COOKIE['drupal_login_check'])) { + unset($_REQUEST['destination']); + drupal_goto('user/no_cookie'); } } Index: modules/user/user.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.pages.inc,v retrieving revision 1.3 diff -u -r1.3 user.pages.inc --- modules/user/user.pages.inc 27 Oct 2007 14:01:12 -0000 1.3 +++ modules/user/user.pages.inc 15 Nov 2007 19:29:10 -0000 @@ -367,3 +367,10 @@ function user_page() { return drupal_get_form('user_login'); } } + +function user_no_cookie() { + global $base_url; + $url = parse_url($base_url); + $text = t('It seems that your browser does not accept cookies. To log into this site, you will need to accept cookies from the domain @domain.', array('@domain' => $url['host'])); + return $text; +}