|
@@ -10,11 +10,17 @@ class MessageListener
|
|
|
{
|
|
|
protected $container;
|
|
|
|
|
|
+ /**
|
|
|
+ * @param ContainerInterface $container
|
|
|
+ */
|
|
|
public function __construct(ContainerInterface $container)
|
|
|
{
|
|
|
$this->container = $container;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param MessageListEvent $event
|
|
|
+ */
|
|
|
public function onListMessages(MessageListEvent $event)
|
|
|
{
|
|
|
foreach ($this->getMessages() as $message) {
|
|
@@ -22,21 +28,23 @@ class MessageListener
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
protected function getMessages()
|
|
|
{
|
|
|
- return array();
|
|
|
-
|
|
|
$threads = $this->container->get('fos_message.provider')->getInboxThreads();
|
|
|
+
|
|
|
$security = $this->container->get('security.context');
|
|
|
$token = $security->getToken();
|
|
|
-
|
|
|
$user = $token->getUser();
|
|
|
+
|
|
|
if (!empty($user)) {
|
|
|
$messages = array();
|
|
|
|
|
|
/** @var \ChamiloLMS\CoreBundle\Entity\Thread $thread */
|
|
|
foreach ($threads as $thread) {
|
|
|
- if ($thread->isReadByParticipant($user)) {
|
|
|
+ if (!$thread->isReadByParticipant($user)) {
|
|
|
foreach ($thread->getMessages() as $message) {
|
|
|
$messages[] = $message;
|
|
|
}
|
|
@@ -45,6 +53,5 @@ class MessageListener
|
|
|
|
|
|
return $messages;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|