/** * Enter description here... * * @param string $aro * @param string $aco * @param string $action * @param integer $value * @return boolean * @access public */ function allow($aro, $aco, $action = "*", $value = 1) { $Perms = new ArosAco(); $perms = $this->getAclLink($aro, $aco); $permKeys = $this->_getAcoKeys($Perms->loadInfo()); $save = array(); if ($perms == false) { trigger_error('DB_ACL::allow() - Invalid node', E_USER_WARNING); return false; } if (isset($perms[0])) { $save = $perms[0]['ArosAco']; } if ($action == "*") { $permKeys = $this->_getAcoKeys($Perms->loadInfo()); foreach ($permKeys as $key) { $save[$key] = $value; } } else { if (in_array('_' . $action, $permKeys)) { $save['_' . $action] = $value; } else { trigger_error('DB_ACL::allow() - Invalid ACO action', E_USER_WARNING); return false; } } $save['aro_id'] = $perms['aro']; $save['aco_id'] = $perms['aco']; if ($perms['link'] != null && count($perms['link']) > 0) { $save['id'] = $perms['link'][0]['ArosAco']['id']; } return $Perms->save(array('ArosAco' => $save)); }