/** * Проверка доступа по ACL * @param $url * @return bool */ function _aclCheck($url) { $permissions = $this->Session->read('Alaxos.Acl.permissions'); if (!isset($permissions)) { $permissions = array(); } $aco_path = AclRouter::aco_path($url); return isset($permissions[$aco_path]) && $permissions[$aco_path] == 1; }
function link($title, $url = null, $options = array(), $confirmMessage = false) { $permissions = $this->Session->read('Alaxos.Acl.permissions'); if (!isset($permissions)) { $permissions = array(); } $aco_path = AclRouter::aco_path($url); if (isset($permissions[$aco_path]) && $permissions[$aco_path] == 1) { return parent::link($title, $url, $options, $confirmMessage); } else { return null; } }
public function _addItem($items = array()) { $temp = array(); foreach ((array) $items as $index => $item) { $aco_path = AclRouter::aco_path(array('plugin' => set::classicExtract($item, "url.plugin"), 'controller' => set::classicExtract($item, "url.controller"), 'action' => set::classicExtract($item, "url.action"))); $children = $this->_addItem(set::classicExtract($item, "children")); $hasChildren = count($children) > 0; if (set::classicExtract($item, "url.controller") == '' && set::classicExtract($item, "url.action") == '' && $hasChildren) { $temp[$index]['title'] = set::classicExtract($item, "title"); $temp[$index]['icon'] = set::classicExtract($item, "icon"); $temp[$index]['children'] = $children; } elseif (isset($this->permissions[$aco_path]) && $this->permissions[$aco_path] == 1) { $temp[$index]['title'] = set::classicExtract($item, "title"); $temp[$index]['icon'] = set::classicExtract($item, "icon"); $temp[$index]['url']['plugin'] = set::classicExtract($item, "url.plugin") ? set::classicExtract($item, "url.plugin") : null; $temp[$index]['url']['controller'] = set::classicExtract($item, "url.controller"); $temp[$index]['url']['action'] = set::classicExtract($item, "url.action"); if ($hasChildren) { $temp[$index]['children'] = $children; } } } return $temp; }