diff options
Diffstat (limited to 'modules/user/user.module')
-rw-r--r-- | modules/user/user.module | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/modules/user/user.module b/modules/user/user.module index 5c598bcf5..22c872af7 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -890,9 +890,8 @@ function user_menu() { // Registration and login pages. $items['user'] = array( 'title' => 'Log in', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('user_login'), - 'access callback' => 'user_is_anonymous', + 'page callback' => 'user_page', + 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); @@ -1130,6 +1129,23 @@ function user_set_authmaps($account, $authmaps) { } } +/** + * Access callback for path /user. + * + * Displays user profile if user is logged in, or login form for anonymous + * users. + */ +function user_page() { + global $user; + if ($user->uid) { + $_GET['q'] = 'user/'. $user->uid; + return menu_execute_active_handler(); + } + else { + return drupal_get_form('user_login'); + } +} + function user_login(&$form_state, $msg = '') { global $user; |