/**
  * Dynamic finder that loads all users for a thread without me
  *
  * @param \Cake\ORM\Query $query the original query to append to
  * @param array $users the list of users to be ignored
  * @return \Cake\ORM\Query The amended query
  */
 public function findReadStatus(Query $query, array $users)
 {
     $query->contain(['Messages' => function ($q) use($users) {
         return $q->find('readStatus', $users);
     }]);
     return $query->map(function ($thread) {
         $opened = false;
         foreach ($thread['messages'] as $message) {
             if ($message['message_read_statuses'][0]['opened']) {
                 $opened = true;
                 break;
             }
         }
         $thread['opened'] = $opened;
         return $thread;
     });
 }