Использование компонента Acl в помощнике клиента - PullRequest
0 голосов
/ 09 января 2019

Я использовал компонент 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. Дай мне ноль ...

...