function reportOrgPermission($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $arrCredentiasls) { $pACL = new paloACL($pDB); $pORGZ = new paloSantoOrganization($pDB); $arrGroups = array(); $arrOrgz = array(); $filter_resource = getParameter("filter_resource"); $idOrgFil = getParameter("idOrganization"); $orgTmp = $pORGZ->getOrganization(array()); if ($orgTmp === false) { $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr($pORGZ->errMsg)); } elseif (count($orgTmp) == 0) { $smarty->assign("mb_title", _tr("MESSAGE")); $msg = _tr("You haven't created any organization"); $smarty->assign("mb_message", $msg); } else { //si el usuario a selecionado una organizacion comprobamos que esta exista //caso contrario procedemos a sellecionar la primera disponible $flag = false; foreach ($orgTmp as $value) { $arrOrgz[$value["id"]] = $value["name"]; if ($value["id"] == $idOrgFil) { $flag = true; } } if (!$flag) { $idOrgFil = $orgTmp[0]['id']; } } $filter_resource = htmlentities($filter_resource); //buscamos en el arreglo del lenguaje la traduccion del recurso en caso de que exista $lang = get_language(); //lenguage que esta siendo usado $parameter_to_find = null; if (isset($filter_resource)) { if (trim($filter_resource) != "") { if ($lang != "en") { global $arrLang; $filter_value = strtolower(trim($filter_resource)); $parameter_to_find[] = $filter_value; //parametro de busqueda sin traduccion foreach ($arrLang as $key => $value) { $langValue = strtolower(trim($value)); if (preg_match("/^[[:alnum:]| ]*\$/", $filter_value)) { if (strpos($langValue, $filter_value) !== FALSE) { $parameter_to_find[] = $key; } } } } else { $parameter_to_find[] = $filter_resource; } } } //obtenemos el numero de recursos disponibles del sistema $total = 0; if (count($arrOrgz) > 0) { $total = $pACL->getNumResources($parameter_to_find, 'yes'); } if ($total == false && $pACL->errMsg != "") { $total = 0; $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr("An error has ocurred to retrieved resources data")); } $limit = 25; $oGrid = new paloSantoGrid($smarty); $oGrid->setLimit($limit); $oGrid->setTotal($total); $offset = $oGrid->calculateOffset(); $end = $offset + $limit <= $total ? $offset + $limit : $total; $url["menu"] = $module_name; $url["filter_resource"] = $filter_resource; $url["idOrganization"] = $idOrgFil; $oGrid->setTitle(_tr("Organization Permission")); $oGrid->setURL($url); $oGrid->setWidth("99%"); $oGrid->setStart($total == 0 ? 0 : $offset + 1); $oGrid->setEnd($end); $oGrid->setTotal($total); $arrColumn = array(_tr("Resource"), "<input type='checkbox' name='selectAll' id='selectAll' />" . _tr('Permit Access')); $oGrid->setColumns($arrColumn); $arrData = array(); if (count($arrOrgz) > 0 && $total > 0) { //obtengo una lista con todos los recursos a los que una organizacion puede tener acceso $arrResource = $pACL->getListResources($limit, $offset, $parameter_to_find, 'yes'); //lista de los recursos permitidos a la organizacion seleccionada organizacion $arrResourceOrg = $pACL->getResourcesByOrg($idOrgFil, $parameter_to_find); if ($arrResourceOrg === false || $arrResource === false) { $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr("An error has ocurred to retrieve resource list.") . " " . _tr($pACL->errMsg)); } else { $temp = array(); foreach ($arrResourceOrg as $value) { $temp[] = $value["id"]; } if (is_array($arrResource) && count($arrResource) > 0) { foreach ($arrResource as $resource) { $disabled = ""; if ($resource["id"] == 'usermgr' || $resource["id"] == 'grouplist' || $resource["id"] == 'userlist' || $resource["id"] == 'group_permission' || $resource["id"] == 'organization') { $disabled = "disabled='disabled'"; } $checked0 = ""; if (in_array($resource["id"], $temp)) { $checked0 = "checked"; } $arrTmp[0] = _tr($resource["description"]); $arrTmp[1] = "<input type='checkbox' {$disabled} name='resource[" . $resource["id"] . "]' id='" . $resource["id"] . "' class='resource' {$checked0}>" . " " . _tr("Permit"); $arrData[] = $arrTmp; } } } } $smarty->assign("SHOW", _tr("Show")); $smarty->assign("resource_apply", $filter_resource); if (count($arrOrgz) > 0) { $oGrid->addSubmitAction("apply", _tr("Save")); $oGrid->addComboAction("idOrganization", _tr("Organization"), $arrOrgz, $idOrgFil, "report"); $arrFormFilter = createFieldFilter(); $oFilterForm = new paloForm($smarty, $arrFormFilter); $htmlFilter = $oFilterForm->fetchForm("{$local_templates_dir}/filter.tpl", "", $_POST); $oGrid->addFilterControl(_tr("Filter applied ") . _tr("Resource") . " = {$filter_resource}", $_POST, array("filter_resource" => "")); $oGrid->showFilter(trim($htmlFilter)); } $contenidoModulo = $oGrid->fetchGrid(array(), $arrData); //end grid parameters return $contenidoModulo; }