function searchModulesByName() { include_once "libs/JSON.php"; include_once "modules/group_permission/libs/paloSantoGroupPermission.class.php"; $json = new Services_JSON(); $pGroupPermission = new paloSantoGroupPermission(); $name = getParameter("name_module_search"); $result = array(); $arrIdMenues = array(); $lang = get_language(); global $arrLang; // obteniendo los id de los menus permitidos global $arrConf; $pACL = new paloACL($arrConf['elastix_dsn']['acl']); $pMenu = new paloMenu($arrConf['elastix_dsn']['menu']); $arrSessionPermissions = $pMenu->filterAuthorizedMenus($pACL->getIdUser($_SESSION['elastix_user'])); $arrIdMenues = array(); foreach ($arrSessionPermissions as $key => $value) { $arrIdMenues[] = $value['id']; // id, IdParent, Link, Name, Type, order_no, HasChild } $parameter_to_find = array(); // arreglo con los valores del name dada la busqueda // el metodo de busqueda de por nombre sera buscando en el arreglo de lenguajes y obteniendo su $key para luego buscarlo en la base de // datos menu.db if ($lang != "en") { // entonces se adjunta la busqueda con el arreglo de lenguajes en ingles foreach ($arrLang as $key => $value) { $langValue = strtolower(trim($value)); $filter_value = strtolower(trim($name)); if ($filter_value != "") { if (preg_match("/^[[:alnum:]| ]*\$/", $filter_value)) { if (strpos($langValue, $filter_value) !== FALSE) { $parameter_to_find[] = $key; } } } } } $parameter_to_find[] = $name; // buscando en la base de datos acl.db tabla acl_resource con el campo description if (empty($parameter_to_find)) { $arrResult = $pGroupPermission->ObtainResources(25, 0, $name); } else { $arrResult = $pGroupPermission->ObtainResources(25, 0, $parameter_to_find); } foreach ($arrResult as $key2 => $value2) { // leyendo el resultado del query if (in_array($value2["name"], $arrIdMenues)) { $arrMenu['caption'] = _tr($value2["description"]); $arrMenu['value'] = $value2["name"]; $result[] = $arrMenu; } } header('Content-Type: application/json'); return $json->encode($result); }
$user = urlencode(substr($_POST['input_user'], 0, 20)); if (!$pACL->getIdUser($_POST['input_user'])) { // not exists user? writeLOG("audit.log", "LOGIN {$user}: Authentication Failure to Web Interface login. Invalid user {$user} from {$_SERVER['REMOTE_ADDR']}."); } else { writeLOG("audit.log", "LOGIN {$user}: Authentication Failure to Web Interface login. Failed password for {$user} from {$_SERVER['REMOTE_ADDR']}."); } // Debo hacer algo aquĆ? } } // 2) Autentico usuario if (isset($_SESSION['elastix_user']) && isset($_SESSION['elastix_pass']) && $pACL->authenticateUser($_SESSION['elastix_user'], $_SESSION['elastix_pass'])) { $idUser = $pACL->getIdUser($_SESSION['elastix_user']); $pMenu = new paloMenu($arrConf['elastix_dsn']['elastix']); //obtenemos los menu a los que el usuario tiene acceso $arrMenuFiltered = $pMenu->filterAuthorizedMenus($idUser, 'yes'); $id_organization = $pACL->getIdOrganizationUser($idUser); if ($id_organization == false) { die("Error to retrieve User Info. " . $pACL->errMsg); } $_SESSION['elastix_organization'] = $id_organization; if (!is_array($arrMenuFiltered)) { $arrMenuFiltered = array(); } //traducir el menu al idioma correspondiente foreach ($arrMenuFiltered as $idMenu => $arrMenuItem) { $arrMenuFiltered[$idMenu]['description'] = _tr($arrMenuItem['description']); } //variables de smarty usadas en los templates $smarty->assign("THEMENAME", $arrConf['mainTheme']); $smarty->assign("WEBPATH", "web/");
function searchModulesByName() { global $arrConf; include_once "libs/paloSantoACL.class.php"; include_once "libs/JSON.php"; include_once "apps/group_permission/libs/paloSantoGroupPermission.class.php"; $json = new Services_JSON(); $pGroupPermission = new paloSantoGroupPermission(); $name = getParameter("name_module_search"); $result = array(); $arrIdMenues = array(); $lang = get_language(); global $arrLang; // obteniendo los id de los menus permitidos $pACL = new paloACL($arrConf['elastix_dsn']['elastix']); $pMenu = new paloMenu($arrConf['elastix_dsn']['elastix']); //antes de obtener el listado de los modulos debemos determinar //si la interfaz desde la cual se esta llamando a los metodos es administrativa o //es de usuario final. $tmpPath = explode("/", $arrConf['basePath']); if ($tmpPath[count($tmpPath) - 1] == 'admin') { $administrative = "yes"; } else { $administrative = "no"; } $org_access = null; if (!$pACL->isUserSuperAdmin($_SESSION['elastix_user'])) { $org_access = 'yes'; } $arrSessionPermissions = $pMenu->filterAuthorizedMenus($pACL->getIdUser($_SESSION['elastix_user']), $administrative); if (!is_array($arrSessionPermissions)) { $arrSessionPermissions = array(); } $arrIdMenues = array(); foreach ($arrSessionPermissions as $key => $value) { $arrIdMenues[] = $value['id']; // id, IdParent, Link, Type, order_no, HasChild } $parameter_to_find = array(); // arreglo con los valores del name dada la busqueda // el metodo de busqueda de por nombre sera buscando en el arreglo de lenguajes y obteniendo su $key para luego buscarlo en la base de // datos menu.db if ($lang != "en") { // entonces se adjunta la busqueda con el arreglo de lenguajes en ingles foreach ($arrLang as $key => $value) { $langValue = strtolower(trim($value)); $filter_value = strtolower(trim($name)); if ($filter_value != "") { if (preg_match("/^[[:alnum:]| ]*\$/", $filter_value)) { if (strpos($langValue, $filter_value) !== FALSE) { $parameter_to_find[] = $key; } } } } } $parameter_to_find[] = $name; // buscando en la base de datos acl.db tabla acl_resource con el campo description if (empty($parameter_to_find)) { $arrResult = $pACL->getListResources(25, 0, $name, $org_access, $administrative); } else { $arrResult = $pACL->getListResources(25, 0, $parameter_to_find, $org_access, $administrative); } foreach ($arrResult as $key2 => $value2) { // leyendo el resultado del query if (in_array($value2["id"], $arrIdMenues)) { $arrMenu['caption'] = _tr($value2["description"]); $arrMenu['value'] = $value2["id"]; $result[] = $arrMenu; } } header('Content-Type: application/json'); return $json->encode($result); }