_helper->viewRenderer->setNeverRender(true); $users = new Users_Model_Users(); switch($this->_getParam('filter')) { case 'confirmed': $where = "accepted_eula=1 AND role != '".Users_Model_User::ROLE_ADMIN."'"; break; case 'unconfirmed': $where = "accepted_eula=0 AND role != '".Users_Model_User::ROLE_ADMIN."'"; break; default: $where = false; break; } // This retrieves user data from the users table, even if using LDAP. This means the user's full name // might be out of sync with what it's in LDAP. No biggie since user's names rarely change ;) // However do know that a given user name is synced with LDAP every time he logs in. $usersRows = $users->getUsers( $this->_getParam('startIndex'), $this->_getParam('results'), $this->_getParam('sort', 'registration'), $this->_getParam('dir', Users_Model_Users::DIR_DESC), $where, trim($this->_getParam('search'))); $jsonObj = new StdClass(); $jsonObj->recordsReturned = count($usersRows); $jsonObj->totalRecords = $users->getNumUsers($where, trim($this->_getParam('search'))); $jsonObj->totalUsers = $users->getNumUsers(); $jsonObj->totalUnconfirmedUsers = $users->getNumUnconfirmedUsers(); $jsonObj->startIndex = $this->_getParam('startIndex'); $jsonObj->sort = $this->_getParam('sort'); $jsonObj->dir = $this->_getParam('dir'); $jsonObj->records = array(); foreach ($usersRows as $user) { if ($user->role == Users_Model_User::ROLE_ADMIN) { if ($this->_config->ldap->enabled && $user->username != $this->_config->ldap->admin) { // this is the admin created during the installation, that is not used when ldap is enabled continue; } $status = $this->view->translate('admin'); } else if ($user->accepted_eula) { $status = $this->view->translate('confirmed'); } else { $status = $this->view->translate('unconfirmed'); } $jsonObjUser = new StdClass(); $jsonObjUser->id = $user->id; $jsonObjUser->name = $user->getFullName(); $jsonObjUser->registration = $user->registration_date; $jsonObjUser->role = $user->role; $jsonObjUser->status = $status; $jsonObjUser->reminders = $user->accepted_eula? 0 : $user->reminders; $jsonObj->records[] = $jsonObjUser; } echo Zend_Json::encode($jsonObj); } }