From: Brion Vibber Date: Fri, 17 Oct 2008 22:20:07 +0000 (+0000) Subject: * (bug 1306) 'Email user' link no longer shown on user page when emailing X-Git-Tag: 1.31.0-rc.0~44711 X-Git-Url: http://git.cyclocoop.org/%28?a=commitdiff_plain;h=65bbc147836aa2c449542132d3603e1b576227fb;p=lhc%2Fweb%2Fwiklou.git * (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 --- 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;