/** * Default action, shows the search form */ public function indexAction() { $numberPage = 1; if ($this->request->isPost()) { $query = \Phalcon\Mvc\Model\Criteria::fromInput($this->di, "\\Models\\Roles", $_POST); $query->order("id ASC, name ASC"); $this->persistent->searchParams = $query->getParams(); if (!\Helpers\Arr::is_array_empty($this->persistent->searchParams)) { $models = \Models\Roles::find($this->persistent->searchParams); } } else { $numberPage = $this->request->getQuery("page", "int"); if (!$numberPage or $numberPage <= 0) { $numberPage = 1; } if ($numberPage > 1 and !\Helpers\Arr::is_array_empty($this->persistent->searchParams)) { $models = \Models\Roles::find($this->persistent->searchParams); } else { //$models = \Models\Roles::query()->order("id ASC, name ASC")->execute(); $models = \Models\Roles::find(); $this->persistent->searchParams = null; } } if (count($models) == 0) { $this->flashSession->notice("Не найдено"); $this->persistent->searchParams = null; } $paginator = new \Phalcon\Paginator\Adapter\Model(array("data" => $models, "limit" => 10, "page" => $numberPage)); $page = $paginator->getPaginate(); $this->view->setVar("page", $page); //$this->view->setVar('searchparams', $this->persistent->searchParams); //$this->view->setVar('numpage', $numberPage); }
/** * Rebuils the access list into a file * */ public function rebuild() { $acl = new AclMemory(); $acl->setDefaultAction(\Phalcon\Acl::DENY); //Register roles $profiles = Roles::find('active = "Y"'); foreach ($profiles as $profile) { $acl->addRole(new AclRole($profile->name)); } foreach ($this->_privateResources as $resource => $actions) { $acl->addResource(new AclResource($resource), $actions); } //Grant acess to private area to role Users foreach ($profiles as $profile) { //Grant permissions in "permissions" model foreach ($profile->getPermissions() as $permission) { $acl->allow($profile->name, $permission->resource, $permission->action); } //Always grant these permissions $acl->allow($profile->name, 'users', 'changePassword'); } file_put_contents(__DIR__ . '/../../../var/cache/acl/data.txt', serialize($acl)); //Store the ACL in APC if (function_exists('apc_store')) { apc_store('shop-acl', $acl); } return $acl; }