Exemple #1
0
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);
}
Exemple #2
0
        $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);
}