Browse Source

Add user email when sending notification BT#13672

- Add new key "complete_name_with_email" when calling api_get_user_info.
- Email will be display only if if "show_email_addresses" setting is on.
jmontoyaa 7 years ago
parent
commit
1a97f60c13
3 changed files with 25 additions and 29 deletions
  1. 15 7
      main/inc/lib/api.lib.php
  2. 8 20
      main/inc/lib/notification.lib.php
  3. 2 2
      main/inc/lib/social.lib.php

+ 15 - 7
main/inc/lib/api.lib.php

@@ -1337,6 +1337,14 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true)
         $result['lastname'] = isset($user['lastName']) ? $user['lastName'] : null;
     }
 
+    if (isset($user['email'])) {
+        $result['mail'] = isset($user['email']) ? $user['email'] : null;
+        $result['email'] = isset($user['email']) ? $user['email'] : null;
+    } else {
+        $result['mail'] = isset($user['mail']) ? $user['mail'] : null;
+        $result['email'] = isset($user['mail']) ? $user['mail'] : null;
+    }
+
     $result['complete_name'] = api_get_person_name($result['firstname'], $result['lastname']);
     $result['complete_name_with_username'] = $result['complete_name'];
 
@@ -1344,6 +1352,13 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true)
         $result['complete_name_with_username'] = $result['complete_name'].' ('.$user['username'].')';
     }
 
+    $showEmail = api_get_setting('show_email_addresses') === 'true';
+    if (!empty($user['email']) && $showEmail) {
+        $result['complete_name_with_email'] = $result['complete_name'].' ('.$user['email'].')';
+    } else {
+        $result['complete_name_with_email'] = $result['complete_name'];
+    }
+
     // Kept for historical reasons
     $result['firstName'] = $result['firstname'];
     $result['lastName'] = $result['lastname'];
@@ -1378,13 +1393,6 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true)
         $result[$attribute] = isset($user[$attribute]) ? $user[$attribute] : null;
     }
 
-    if (isset($user['email'])) {
-        $result['mail'] = isset($user['email']) ? $user['email'] : null;
-        $result['email'] = isset($user['email']) ? $user['email'] : null;
-    } else {
-        $result['mail'] = isset($user['mail']) ? $user['mail'] : null;
-        $result['email'] = isset($user['mail']) ? $user['mail'] : null;
-    }
     $user_id = intval($user['user_id']);
     // Maintain the user_id index for backwards compatibility
     $result['user_id'] = $result['id'] = $user_id;

+ 8 - 20
main/inc/lib/notification.lib.php

@@ -141,7 +141,7 @@ class Notification extends Model
 
     /**
      * @param string $title
-     * @param array  $senderInfo
+     * @param array $senderInfo
      *
      * @return string
      */
@@ -380,13 +380,10 @@ class Notification extends Model
                     $content = '';
                 }
                 if (!empty($senderInfo)) {
-                    $senderName = api_get_person_name(
-                        $senderInfo['firstname'],
-                        $senderInfo['lastname'],
-                        null,
-                        PERSON_NAME_EMAIL_ADDRESS
+                    $newMessageText = sprintf(
+                        get_lang('YouHaveANewMessageFromX'),
+                        $senderInfo['complete_name_with_email']
                     );
-                    $newMessageText = sprintf(get_lang('YouHaveANewMessageFromX'), $senderName);
                 }
                 $linkToNewMessage = Display::url(
                     get_lang('SeeMessage'),
@@ -395,13 +392,10 @@ class Notification extends Model
                 break;
             case self::NOTIFICATION_TYPE_INVITATION:
                 if (!empty($senderInfo)) {
-                    $senderName = api_get_person_name(
-                        $senderInfo['firstname'],
-                        $senderInfo['lastname'],
-                        null,
-                        PERSON_NAME_EMAIL_ADDRESS
+                    $newMessageText = sprintf(
+                        get_lang('YouHaveANewInvitationFromX'),
+                        $senderInfo['complete_name_with_email']
                     );
-                    $newMessageText = sprintf(get_lang('YouHaveANewInvitationFromX'), $senderName);
                 }
                 $linkToNewMessage = Display::url(
                     get_lang('SeeInvitation'),
@@ -413,14 +407,8 @@ class Notification extends Model
                 if (!empty($senderInfo)) {
                     $senderName = $senderInfo['group_info']['name'];
                     $newMessageText = sprintf(get_lang('YouHaveReceivedANewMessageInTheGroupX'), $senderName);
-                    $senderName = api_get_person_name(
-                        $senderInfo['user_info']['firstname'],
-                        $senderInfo['user_info']['lastname'],
-                        null,
-                        PERSON_NAME_EMAIL_ADDRESS
-                    );
                     $senderName = Display::url(
-                        $senderName,
+                        $senderInfo['complete_name_with_email'],
                         api_get_path(WEB_CODE_PATH).'social/profile.php?'.$senderInfo['user_info']['user_id']
                     );
                     $newMessageText .= '<br />'.get_lang('User').': '.$senderName;

+ 2 - 2
main/inc/lib/social.lib.php

@@ -254,14 +254,14 @@ class SocialManager extends UserManager
             ];
             Database::insert($tbl_message, $params);
 
-            $sender_info = api_get_user_info($user_id);
+            $senderInfo = api_get_user_info($user_id);
             $notification = new Notification();
             $notification->saveNotification(
                 Notification::NOTIFICATION_TYPE_INVITATION,
                 array($friend_id),
                 $message_title,
                 $message_content,
-                $sender_info
+                $senderInfo
             );
 
             return true;