Fix user invitation, fix query

pull/3768/head
Julio Montoya 5 years ago
parent a8a4ae762f
commit f8d39d2d49
  1. 3
      public/main/inc/ajax/message.ajax.php
  2. 113
      public/main/inc/lib/social.lib.php
  3. 3
      public/main/social/invitations.php
  4. 2
      src/CoreBundle/Repository/Node/UserRepository.php

@ -142,7 +142,8 @@ switch ($action) {
$subject = isset($_REQUEST['subject']) ? trim($_REQUEST['subject']) : null; $subject = isset($_REQUEST['subject']) ? trim($_REQUEST['subject']) : null;
$invitationContent = isset($_REQUEST['content']) ? trim($_REQUEST['content']) : null; $invitationContent = isset($_REQUEST['content']) ? trim($_REQUEST['content']) : null;
SocialManager::sendInvitationToUser($_REQUEST['user_id'], $subject, $invitationContent); $result = SocialManager::sendInvitationToUser($_REQUEST['user_id'], $subject, $invitationContent);
echo $result ? 1 : 0;
break; break;
case 'find_users': case 'find_users':
if (api_is_anonymous()) { if (api_is_anonymous()) {

@ -273,9 +273,7 @@ class SocialManager extends UserManager
//Just in case we replace the and \n and \n\r while saving in the DB //Just in case we replace the and \n and \n\r while saving in the DB
$message_content = str_replace(["\n", "\n\r"], '<br />', $message_content); $message_content = str_replace(["\n", "\n\r"], '<br />', $message_content);
$clean_message_content = Database::escape_string($message_content); $clean_message_content = Database::escape_string($message_content);
$now = api_get_utc_datetime();
$sql = 'SELECT COUNT(*) AS count FROM '.$tbl_message.' $sql = 'SELECT COUNT(*) AS count FROM '.$tbl_message.'
WHERE WHERE
user_sender_id='.$user_id.' AND user_sender_id='.$user_id.' AND
@ -284,31 +282,32 @@ class SocialManager extends UserManager
'; ';
$res_exist = Database::query($sql); $res_exist = Database::query($sql);
$row_exist = Database::fetch_array($res_exist, 'ASSOC'); $row_exist = Database::fetch_array($res_exist, 'ASSOC');
if (0 === (int) $row_exist['count']) {
if (0 == $row_exist['count']) { $em = Database::getManager();
$params = [ $message = new Message();
'user_sender_id' => $user_id, $message
'user_receiver_id' => $friend_id, ->setUserSender(api_get_user_entity($user_id))
'msg_status' => MESSAGE_STATUS_INVITATION_PENDING, ->setUserReceiver(api_get_user_entity($friend_id))
'send_date' => $now, ->setMsgStatus(MESSAGE_STATUS_INVITATION_PENDING)
'title' => $message_title, ->setTitle($message_title)
'content' => $message_content, ->setContent($message_content)
'group_id' => 0, ->setGroupId(0)
'parent_id' => 0, ;
'update_date' => $now, $em->persist($message);
]; $em->flush();
$messageId = Database::insert($tbl_message, $params); $messageId = $message->getId();
if ($messageId) {
$senderInfo = api_get_user_info($user_id); $senderInfo = api_get_user_info($user_id);
$notification = new Notification(); $notification = new Notification();
$notification->saveNotification( $notification->saveNotification(
$messageId, $messageId,
Notification::NOTIFICATION_TYPE_INVITATION, Notification::NOTIFICATION_TYPE_INVITATION,
[$friend_id], [$friend_id],
$message_title, $message_title,
$message_content, $message_content,
$senderInfo $senderInfo
); );
}
return true; return true;
} else { } else {
@ -330,10 +329,10 @@ class SocialManager extends UserManager
Database::query($sql); Database::query($sql);
return true; return true;
} else {
return false;
} }
} }
return false;
} }
/** /**
@ -668,7 +667,7 @@ class SocialManager extends UserManager
$success = get_lang('The message has been sent to'); $success = get_lang('The message has been sent to');
$success .= ' : '.api_get_person_name($user_info['firstName'], $user_info['lastName']); $success .= ' : '.api_get_person_name($user_info['firstName'], $user_info['lastName']);
if (isset($subject) && isset($content) && isset($userId)) { if (!empty($subject) && !empty($content) && !empty($userId)) {
$result = MessageManager::send_message($userId, $subject, $content); $result = MessageManager::send_message($userId, $subject, $content);
if ($result) { if ($result) {
@ -677,37 +676,39 @@ class SocialManager extends UserManager
); );
} else { } else {
Display::addFlash( Display::addFlash(
Display::return_message(get_lang('There was an error while trying to send the message.'), 'error', false) Display::return_message(
get_lang('There was an error while trying to send the message.'),
'error',
false
)
); );
} }
return false; return false;
} elseif (isset($userId) && !isset($subject)) { } elseif (!empty($userId) && empty($subject)) {
if (isset($userId) && $userId > 0) { $count = self::send_invitation_friend(
$count = self::send_invitation_friend( api_get_user_id(),
api_get_user_id(), $userId,
$userId, get_lang('Invitation'),
get_lang('Invitation'), $content
$content );
);
if ($count) { if ($count) {
Display::addFlash( Display::addFlash(
Display::return_message( Display::return_message(
api_htmlentities(get_lang('The invitation has been sent')), api_htmlentities(get_lang('The invitation has been sent')),
'normal', 'normal',
false false
) )
); );
} else { } else {
Display::addFlash( Display::addFlash(
Display::return_message( Display::return_message(
api_htmlentities(get_lang('You already sent an invitation')), api_htmlentities(get_lang('You already sent an invitation')),
'warning', 'warning',
false false
) )
); );
}
} }
} }
} }

@ -1,4 +1,5 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
/** /**
@ -79,7 +80,7 @@ if (is_array($_GET) && count($_GET) > 0) {
} }
} }
$content = null; $content = '';
// Block Menu Social // Block Menu Social
$social_menu_block = SocialManager::show_social_menu('invitations'); $social_menu_block = SocialManager::show_social_menu('invitations');

@ -585,7 +585,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
U.active = 1 AND U.active = 1 AND
U.status != 6 AND U.status != 6 AND
UF.relationType NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.") AND UF.relationType NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.") AND
UF.userId = $currentUserId AND UF.user = $currentUserId AND
UF.friendUserId != $currentUserId AND UF.friendUserId != $currentUserId AND
U = R.user AND U = R.user AND
R.url = $accessUrlId"; R.url = $accessUrlId";

Loading…
Cancel
Save