/** * Find all users * @param array $criteria * @param array $orderBy * @param array $paging * @return array */ public function fetchAll($criteria = array(), $orderBy = array(), &$paging = null) { /* @var $select Zend_Db_Select*/ $select = $this->_dbTable->select(); $select->setIntegrityCheck(false)->from(array('r' => 'auth_role'), array('r.*')); if (isset($criteria['search_filter'])) { $searchString = '%' . $criteria['search_filter'] . '%'; $select->where(' r.name LIKE ? ', $searchString); } if (isset($criteria['name'])) { $searchString = '%' . $criteria['name'] . '%'; $select->where(' r.name LIKE ? ', $searchString); } if (is_array($orderBy) && count($orderBy) > 0) { $select->order($orderBy); } //echo $select->__toString();die(); // init paginator if ($paging != null) { $resultSet = $this->_getPagingRows($paging, $select); } else { $resultSet = $this->_dbTable->fetchAll($select); } $roles = array(); if (0 == count($resultSet)) { return $roles; } foreach ($resultSet as $row) { $rowArray = $row->toArray(); $role = new Auth_Model_Role($rowArray); $roles[] = $role; } return $roles; }
protected function _getAcl() { $acl = false; if (Zend_Registry::isRegistered('cache')) { $cache = Zend_Registry::get('cache'); $acl = $cache->load('acl'); } if (!$acl) { $acl = new Zend_Acl(); $role = new Auth_Model_DbTable_Role(); $resource = new Auth_Model_DbTable_Resource(); $roleResource = new Auth_Model_DbTable_RoleResource(); $roles = $role->fetchAll("name <> 'Todos'"); $resources = $resource->getDistinctModules(); $relations = $roleResource->fetchAllRelations(); $acl->addRole('Todos'); foreach ($roles as $role) { $acl->addRole($role['name'], 'Todos'); } foreach ($resources as $resource) { $acl->addResource($resource['module']); } foreach ($relations as $relation) { $acl->allow($relation['name'], $relation['module'], $relation['privilege']); } if (Zend_Registry::isRegistered('cache')) { $cache->save($acl, 'acl'); } } Zend_Registry::set('acl', $acl); return $acl; }