Я использовал компонент acl, но мне нужно проверить разрешение в представлении. создать компонент, в котором экземпляр acl компонента.
<?php
namespace App\Controller\Component;
use Cake\Controller\Component;
class AccessComponent extends Component
{
var $components = array('Acl');
function checkHelper($aro, $aco, $action = "*")
{
//Importa los componentes de ACL
App::import('Component', 'Acl');
// Instancia una clase del componente
$acl = new AclComponent();
// returna el resultado del check
return $acl->check($aro, $aco, $action);
}
}
тогда мне нужно передать функцию AccessHelper
<?php
namespace App\View\Helper;
use Cake\View\Helper;
use Cake\Event\Event;
use Cake\ORM\TableRegistry;
class AccessHelper extends Helper
{
// var $helpers = array("Session");
var $Access;
//var $Auth;
// var $user;
function beforeRender(Event $event)
{
App::import('Component', 'AccessComponent');
// App::uses('AccessComponent', 'Controller/Component');
$this->Access = new AccessComponent();
// var_dump($this->Access);
// App::import('Component', 'Auth');
//$this->Auth = new AuthComponent();
//$this->Auth->Session = $this->Session;
//$user = $this->request->getSession()->read('Auth');
}
function check($user, $aco, $action='*')
{
if(empty($user)) return false;
// Returna el metodo del check definido en el componente Access
return $this->Access->checkHelper($user['User']['id'], $aco, $action);
}
}
?>
помощник не нашел AccessComponent. Дай мне ноль ...