public function loadUsersAction(Request $request)
{
$em = $this->get('em');
$zendRouter = $this->get('zend_router');
$userService = $this->get('user');
$cacheService = $this->get('newscoop.cache');
$criteria = $userService->extractCriteriaFromRequest($request);
$criteria->is_public = null;
$registered = $userService->countBy(array('status' => User::STATUS_ACTIVE));
$pending = $userService->countBy(array('status' => User::STATUS_INACTIVE));
$cacheKey = $cacheService->getCacheKey(array('users__' . md5(serialize($criteria)), $registered, $pending));
if ($cacheService->contains($cacheKey)) {
$responseArray = $cacheService->fetch($cacheKey);
} else {
$users = $em->getRepository('Newscoop\\Entity\\User')->getListByCriteria($criteria);
$pocessed = array();
foreach ($users as $user) {
$pocessed[] = $this->processUser($user, $zendRouter);
}
$responseArray = array('records' => $pocessed, 'queryRecordCount' => $users->count, 'totalRecordCount' => count($users->items));
$cacheService->save($cacheKey, $responseArray);
}
return new JsonResponse($responseArray);
}