From 65bbc147836aa2c449542132d3603e1b576227fb Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 17 Oct 2008 22:20:07 +0000 Subject: [PATCH] * (bug 1306) 'Email user' link no longer shown on user page when emailing is not available due to lack of confirmed address or disabled preference --- RELEASE-NOTES | 4 +++- includes/Skin.php | 12 ++++-------- includes/User.php | 5 +++++ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 418d4a2827..ae25f19ba8 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -168,7 +168,9 @@ The following extensions are migrated into MediaWiki 1.14: lead to this hook being called (it was previously only called from within Article.php * Maximum execution time for shell processes on linux is now configured with $wgMaxShellTime (180 seconds by default) - +* (bug 1306) 'Email user' link no longer shown on user page when emailing + is not available due to lack of confirmed address or disabled preference + === Bug fixes in 1.14 === * (bug 14907) DatabasePostgres::fieldType now defined. diff --git a/includes/Skin.php b/includes/Skin.php index 169375dd1d..b1336ee8c6 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -1573,14 +1573,10 @@ END; } function showEmailUser( $id ) { - global $wgEnableEmail, $wgEnableUserEmail, $wgUser; - return $wgEnableEmail && - $wgEnableUserEmail && - $wgUser->isLoggedIn() && # show only to signed in users - 0 != $id; # we can only email to non-anons .. -# '' != $id->getEmail() && # who must have an email address stored .. -# 0 != $id->getEmailauthenticationtimestamp() && # .. which is authenticated -# 1 != $wgUser->getOption('disablemail'); # and not disabled + global $wgUser; + $targetUser = User::newFromId( $id ); + return $wgUser->canSendEmail() && # the sending user must have a confirmed email address + $targetUser->canReceiveEmail(); # the target user must have a confirmed email address and allow emails from users } function emailUserLink() { diff --git a/includes/User.php b/includes/User.php index 578e3246fc..b5eb7aef30 100644 --- a/includes/User.php +++ b/includes/User.php @@ -2381,6 +2381,7 @@ class User { ); wfRunHooks( 'UserSaveSettings', array( $this ) ); $this->clearSharedCache(); + $this->getUserPage()->invalidateCache(); } /** @@ -2914,6 +2915,10 @@ class User { * @return \type{\bool} True if allowed */ function canSendEmail() { + global $wgEnableEmail, $wgEnableUserEmail; + if( !$wgEnableEmail || !$wgEnableUserEmail ) { + return false; + } $canSend = $this->isEmailConfirmed(); wfRunHooks( 'UserCanSendEmail', array( &$this, &$canSend ) ); return $canSend; -- 2.20.1