/** * @Route("/user/list", name="chat.user.list") */ public function userListAction() { $run = function () { $em = $this->get('doctrine.orm.entity_manager'); $userClass = $this->container->get('fos_user.user_manager')->getClass(); $query = $em->getRepository($userClass)->createQueryBuilder('u')->select('u.id, u.username, u.email')->andWhere('u.enabled = true')->andWhere('u.username NOT IN (:excluded)')->setParameters(['excluded' => ['system', $this->getUser()->getUsername()]])->getQuery(); $data = $query->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY); $ids = $this->getActiveUsersIds(); $data = array_map(function ($e) use($ids) { $e['online'] = in_array($e['id'], $ids); $e['image'] = util::get_gravatar($e['email']); return $e; }, $data); usort($data, function ($a, $b) { return $a['online'] < $b['online']; }); return $this->getFrame()->getDataFrame('Users', $data); }; return $this->handleJsonAction($run); }
public function test_get_gravatar() { $_SERVER['HTTPS'] = 'on'; $this->assertEquals('https://secure.gravatar.com/avatar/a4bf5bbb9feaa2713d99a3b52ab80024?s=32', util::get_gravatar('*****@*****.**')); $this->assertEquals('https://secure.gravatar.com/avatar/a4bf5bbb9feaa2713d99a3b52ab80024?s=128', util::get_gravatar('*****@*****.**', 128)); $_SERVER['HTTPS'] = 'off'; $this->assertEquals('http://www.gravatar.com/avatar/a4bf5bbb9feaa2713d99a3b52ab80024?s=32', util::get_gravatar('*****@*****.**')); $this->assertEquals('http://www.gravatar.com/avatar/a4bf5bbb9feaa2713d99a3b52ab80024?s=128', util::get_gravatar('*****@*****.**', 128)); }