* (bug 1306) 'Email user' link no longer shown on user page when emailing
authorBrion Vibber <brion@users.mediawiki.org>
Fri, 17 Oct 2008 22:20:07 +0000 (22:20 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Fri, 17 Oct 2008 22:20:07 +0000 (22:20 +0000)
  is not available due to lack of confirmed address or disabled preference

RELEASE-NOTES
includes/Skin.php
includes/User.php

index 418d4a2..ae25f19 100644 (file)
@@ -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.
index 169375d..b1336ee 100644 (file)
@@ -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() {
index 578e324..b5eb7ae 100644 (file)
@@ -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;