]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Strict typing for mail_notify_attn
authorMikael Nordfeldth <mmn@hethane.se>
Tue, 1 Mar 2016 22:36:47 +0000 (23:36 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Tue, 1 Mar 2016 22:37:11 +0000 (23:37 +0100)
classes/Notice.php
lib/mail.php

index 9bf22047472939a33c98586d937fa5f231ba65ba..fcc544e2eac764338513ed26bbd0651c7249275a 100644 (file)
@@ -1834,7 +1834,7 @@ class Notice extends Managed_DataObject
             foreach ($recipientIds as $recipientId) {
                 try {
                     $user = User::getByID($recipientId);
-                    mail_notify_attn($user, $this);
+                    mail_notify_attn($user->getProfile(), $this);
                 } catch (NoResultException $e) {
                     // No such user
                 }
index da22eb6715a1b2c333ae0cf60f6271f513e373f5..383e2670cf6d857407f84463ba49bfc7193bae1c 100644 (file)
@@ -668,20 +668,19 @@ function mail_notify_message($message, $from=null, $to=null)
 /**
  * Notify a user that they have received an "attn:" message AKA "@-reply"
  *
- * @param User   $user   The user who recevied the notice
+ * @param Profile $rcpt  The Profile who recevied the notice, should be a local user
  * @param Notice $notice The notice that was sent
  *
  * @return void
  */
-function mail_notify_attn($user, $notice)
+function mail_notify_attn(Profile $rcpt, Notice $notice)
 {
-    if (!$user->receivesEmailNotifications()) {
+    if (!$rcpt->isLocal()) {
         return;
     }
 
     $sender = $notice->getProfile();
-
-    if ($sender->id == $user->id) {
+    if ($rcpt->sameAs($sender)) {
         return;
     }
 
@@ -691,17 +690,20 @@ function mail_notify_attn($user, $notice)
     }
 
     // If the author has blocked the author, don't spam them with a notification.
-    if ($user->hasBlocked($sender)) {
+    if ($rcpt->hasBlocked($sender)) {
         return;
     }
 
-    $bestname = $sender->getBestName();
+    $user = $rcpt->getUser();
+    if (!$user->receivesEmailNotifications()) {
+        return;
+    }
 
     common_switch_locale($user->language);
 
     if ($notice->hasConversation()) {
         $conversationUrl = common_local_url('conversation',
-                         array('id' => $notice->conversation)).'#notice-'.$notice->id;
+                         array('id' => $notice->conversation)).'#notice-'.$notice->getID();
         // TRANS: Line in @-reply notification e-mail. %s is conversation URL.
         $conversationEmailText = sprintf(_("The full conversation can be read here:\n\n".
                                            "\t%s"), $conversationUrl) . "\n\n";
@@ -711,7 +713,7 @@ function mail_notify_attn($user, $notice)
 
     // TRANS: E-mail subject for notice notification.
     // TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname.
-    $subject = sprintf(_('%1$s (@%2$s) sent a notice to your attention'), $bestname, $sender->nickname);
+    $subject = sprintf(_('%1$s (@%2$s) sent a notice to your attention'), $sender->getBestName(), $sender->getNickname());
 
         // TRANS: Body of @-reply notification e-mail.
         // TRANS: %1$s is the sending user's name, $2$s is the StatusNet sitename,
@@ -731,15 +733,15 @@ function mail_notify_attn($user, $notice)
                     $sender->getFancyName(),//%1
                     common_config('site', 'name'),//%2
                     common_local_url('shownotice',
-                                     array('notice' => $notice->id)),//%3
-                    $notice->content,//%4
+                                     array('notice' => $notice->getID())),//%3
+                    $notice->getContent(),//%4
                     $conversationEmailText,//%5
                     common_local_url('newnotice',
-                                     array('replyto' => $sender->nickname, 'inreplyto' => $notice->id)),//%6
+                                     array('replyto' => $sender->getNickname(), 'inreplyto' => $notice->getID())),//%6
                     common_local_url('replies',
-                                     array('nickname' => $user->nickname))) . //%7
+                                     array('nickname' => $rcpt->getNickname()))) . //%7
                 mail_footer_block();
-    $headers = _mail_prepare_headers('mention', $user->nickname, $sender->nickname);
+    $headers = _mail_prepare_headers('mention', $rcpt->getNickname(), $sender->getNickname());
 
     common_switch_locale();
     mail_to_user($user, $subject, $body, $headers);