Esempio n. 1
0
function handleJSON_changeImageProfile($smarty, $module_name)
{
    global $arrConf;
    Header('Content-Type: application/json');
    $arrCredentials = getUserCredentials($_SESSION['elastix_user']);
    $pDB = new paloDB($arrConf['elastix_dsn']["elastix"]);
    $pACL = new paloACL($pDB);
    $jsonObject = new PaloSantoJSON();
    $idUser = $arrCredentials['idUser'];
    foreach ($_FILES['picture']['error'] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $pictureUpload = $_FILES['picture']['name'][$key];
            if (!preg_match("/^(\\w|-|\\.|\\(|\\)|\\s)+\\.(png|PNG|JPG|jpg|JPEG|jpeg)\$/", $pictureUpload)) {
                $jsonObject->set_error(_tr("Invalid file extension.- It must be png or jpg or jpeg"));
                return $jsonObject->createJSON();
            } elseif (preg_match("/(\\.php)/", $pictureUpload)) {
                $jsonObject->set_error(_tr("Possible file upload attack."));
                return $jsonObject->createJSON();
            } else {
                if (is_uploaded_file($_FILES['picture']['tmp_name'][$key])) {
                    $ancho = 159;
                    $alto = 159;
                    redimensionarImagen($_FILES['picture']['tmp_name'][$key], $_FILES['picture']['tmp_name'][$key], $ancho, $alto);
                    $picture_type = $_FILES['picture']['type'][$key];
                    $picture_content = file_get_contents($_FILES['picture']['tmp_name'][$key]);
                    $Exito = $pACL->setUserPicture($idUser, $picture_type, $picture_content);
                    if ($Exito === false) {
                        $jsonObject->set_error(_tr("Image couldn't be upload."));
                        return $jsonObject->createJSON();
                    }
                } else {
                    $jsonObject->set_error(_tr("Possible file upload attack. Filename") . " : " . $pictureUpload);
                    return $jsonObject->createJSON();
                }
            }
            $url = "index.php?menu=_elastixutils&action=getImage&ID={$idUser}&rawmode=yes";
            $jsonObject->set_message($url);
            return $jsonObject->createJSON();
        }
    }
    return $jsonObject->createJSON();
}
Esempio n. 2
0
function save_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, $update = FALSE)
{
    $arrForm = createFieldForm($arrLang);
    $oForm = new paloForm($smarty, $arrForm);
    $pACL = new paloACL($pDB_2);
    $id_user = $pACL->getIdUser($_SESSION["elastix_user"]);
    $bandera = true;
    if (!$oForm->validateForm($_POST)) {
        // Falla la validación básica del formulario
        $smarty->assign("mb_title", $arrLang["Validation Error"]);
        $arrErrores = $oForm->arrErroresValidacion;
        $strErrorMsg = "<b>{$arrLang['The following fields contain errors']}:</b><br/>";
        if (is_array($arrErrores) && count($arrErrores) > 0) {
            foreach ($arrErrores as $k => $v) {
                $strErrorMsg .= "{$k}, ";
            }
        }
        $smarty->assign("mb_message", $strErrorMsg);
        $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
        $smarty->assign("SAVE", $arrLang["Save"]);
        $smarty->assign("CANCEL", $arrLang["Cancel"]);
        $smarty->assign("title", $arrLang["Address Book"]);
        $smarty->assign("new_contact", $arrLang["New Contact"]);
        $smarty->assign("address_from_csv", $arrLang["Address Book from CSV"]);
        $smarty->assign("private_contact", $arrLang["Private Contact"]);
        $smarty->assign("public_contact", $arrLang["Public Contact"]);
        if (isset($_POST['address_book_options']) && $_POST['address_book_options'] == 'address_from_csv') {
            $smarty->assign("check_csv", "checked");
        } else {
            $smarty->assign("check_new_contact", "checked");
        }
        if (isset($_POST['address_book_status']) && $_POST['address_book_status'] == 'isPrivate') {
            $smarty->assign("check_isPrivate", "checked");
        } else {
            $smarty->assign("check_isPublic", "checked");
        }
        $smarty->assign("SAVE", $arrLang["Save"]);
        $smarty->assign("CANCEL", $arrLang["Cancel"]);
        $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
        $smarty->assign("label_file", $arrLang["File"]);
        $smarty->assign("DOWNLOAD", $arrLang["Download Address Book"]);
        $smarty->assign("HeaderFile", $arrLang["Header File Address Book"]);
        $smarty->assign("AboutContacts", $arrLang["About Address Book"]);
        if ($update) {
            $_POST["edit"] = 'edit';
            return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
        } else {
            $smarty->assign("Show", 1);
            $smarty->assign("ShowImg", 1);
            $htmlForm = $oForm->fetchForm("{$local_templates_dir}/new_adress_book.tpl", $arrLang["Address Book"], $_POST);
            $contenidoModulo = "<form  method='POST' enctype='multipart/form-data' style='margin-bottom:0;' action='?menu={$module_name}'>" . $htmlForm . "</form>";
            return $contenidoModulo;
        }
    } else {
        $pictureUpload = $_FILES['picture']['name'];
        $file_upload = "";
        $ruta_destino = "/var/www/address_book_images";
        $idPost = $_POST['id'];
        $data = array();
        $padress_book = new paloAdressBook($pDB);
        $contactData = $padress_book->contactData($idPost, $id_user);
        $lastId = 0;
        if ($update) {
            $idImg = $contactData['id'];
        } else {
            $idImg = date("Ymdhis");
        }
        //valido el tipo de archivo
        if (isset($pictureUpload) && $pictureUpload != "") {
            // \w cualquier caracter, letra o guion bajo
            // \s cualquier espacio en blanco
            if (!preg_match("/^(\\w|-|\\.|\\(|\\)|\\s)+\\.(png|PNG|JPG|jpg|JPEG|jpeg)\$/", $pictureUpload)) {
                $smarty->assign("mb_title", $arrLang["Validation Error"]);
                $smarty->assign("mb_message", $arrLang["Invalid file extension.- It must be png or jpg or jpeg"]);
                if ($update) {
                    return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, TRUE);
                } else {
                    return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                }
            } else {
                if (is_uploaded_file($_FILES['picture']['tmp_name'])) {
                    $file_upload = basename($_FILES['picture']['tmp_name']);
                    // verificando que solo tenga la ruta al archivo
                    $file_name = basename("/tmp/" . $_FILES['picture']['name']);
                    $ruta_archivo = "/tmp/{$file_upload}";
                    $arrIm = explode(".", $pictureUpload);
                    $renameFile = "{$ruta_destino}/{$idImg}." . $arrIm[count($arrIm) - 1];
                    $file_upload = $idImg . "." . $arrIm[count($arrIm) - 1];
                    $filesize = $_FILES['picture']['size'];
                    $filetype = $_FILES['picture']['type'];
                    $sizeImgUp = getimagesize($ruta_archivo);
                    if (!$sizeImgUp) {
                        $smarty->assign("mb_title", $arrLang["ERROR"]);
                        $smarty->assign("mb_message", $arrLang["Possible file upload attack. Filename"] . " : " . $pictureUpload);
                        if ($update) {
                            return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, TRUE);
                        } else {
                            return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                        }
                    }
                    //realizar acciones
                    if (!rename($ruta_archivo, $renameFile)) {
                        $smarty->assign("mb_title", $arrLang["ERROR"]);
                        $smarty->assign("mb_message", $arrLang["Error to Upload"] . " : " . $pictureUpload);
                        if ($update) {
                            return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, TRUE);
                        } else {
                            return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                        }
                    } else {
                        //redimensiono la imagen
                        $ancho_thumbnail = 48;
                        $alto_thumbnail = 48;
                        $thumbnail_path = $ruta_destino . "/{$idImg}" . "_Thumbnail." . $arrIm[count($arrIm) - 1];
                        if (is_file($renameFile)) {
                            if (!redimensionarImagen($renameFile, $thumbnail_path, $ancho_thumbnail, $alto_thumbnail)) {
                                $smarty->assign("mb_title", $arrLang["ERROR"]);
                                $smarty->assign("mb_message", $arrLang["Possible file upload attack. Filename"] . " : " . $pictureUpload);
                                if ($update) {
                                    return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, TRUE);
                                } else {
                                    return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                                }
                            }
                        }
                        $ancho = 280;
                        $alto = 200;
                        if (is_file($renameFile)) {
                            if (!redimensionarImagen($renameFile, $renameFile, $ancho, $alto)) {
                                $smarty->assign("mb_title", $arrLang["ERROR"]);
                                $smarty->assign("mb_message", $arrLang["Possible file upload attack. Filename"] . " : " . $pictureUpload);
                                if ($update) {
                                    return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, TRUE);
                                } else {
                                    return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                                }
                            }
                        }
                    }
                } else {
                    $smarty->assign("mb_title", $arrLang["ERROR"]);
                    $smarty->assign("mb_message", $arrLang["Possible file upload attack. Filename"] . " : " . $pictureUpload);
                    if ($update) {
                        return view_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, TRUE);
                    } else {
                        return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                    }
                }
            }
        }
        $namedb = isset($_POST['name']) ? $_POST['name'] : "";
        $last_namedb = isset($_POST['last_name']) ? $_POST['last_name'] : "";
        $telefonodb = isset($_POST['telefono']) ? $_POST['telefono'] : "";
        //$extensiondb  = isset($_POST['extension'])?$_POST['extension']:"";
        $emaildb = isset($_POST['email']) ? $_POST['email'] : "";
        $iduserdb = isset($id_user) ? "{$id_user}" : "";
        $picturedb = isset($file_upload) ? "{$file_upload}" : "";
        $addressdb = isset($_POST['address']) ? $_POST['address'] : "";
        $companydb = isset($_POST['company']) ? $_POST['company'] : "";
        $notesdb = isset($_POST['notes']) ? $_POST['notes'] : "";
        $statusdb = isset($_POST['address_book_status']) ? $_POST['address_book_status'] : "";
        $data = array($namedb, $last_namedb, $telefonodb, $emaildb, $iduserdb, $picturedb, $addressdb, $companydb, $notesdb, $statusdb);
        if ($update) {
            // actualizacion del contacto
            if ($contactData) {
                if ($file_upload == "") {
                    $data[5] = $contactData['picture'];
                }
                $result = $padress_book->updateContact($data, $_POST['id']);
                if (!$result) {
                    $smarty->assign("mb_title", $arrLang["Validation Error"]);
                    $smarty->assign("mb_message", $arrLang["Internal Error"]);
                    return report_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
                }
            } else {
                $smarty->assign("mb_title", $arrLang["Validation Error"]);
                $smarty->assign("mb_message", $arrLang["Internal Error"]);
                return report_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            }
        } else {
            //// creacion de contacto
            $result = $padress_book->addContact($data);
            if (!$result) {
                $smarty->assign("mb_title", $arrLang["Validation Error"]);
                $smarty->assign("mb_message", $arrLang["Internal Error"]);
                return new_adress_book($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            }
            $lastId = $pDB->getLastInsertId();
            $contactData2 = $padress_book->contactData($lastId, $id_user);
            if ($contactData2['picture'] != "" && isset($contactData2['picture'])) {
                $arrIm = explode(".", $contactData2['picture']);
                $renameFile = "{$ruta_destino}/" . $lastId . "." . $arrIm[count($arrIm) - 1];
                $file_upload = $lastId . "." . $arrIm[count($arrIm) - 1];
                rename($ruta_destino . "/" . $contactData2['picture'], $renameFile);
                rename($ruta_destino . "/" . $idImg . "_Thumbnail." . $arrIm[count($arrIm) - 1], $ruta_destino . "/" . $lastId . "_Thumbnail." . $arrIm[count($arrIm) - 1]);
                $data[5] = $file_upload;
                $padress_book->updateContact($data, $lastId);
            }
        }
        if (!$result) {
            return $pDB->errMsg;
        }
        //'?menu=$module_name&action=show&id=".$adress_book['id']."'
        if ($_POST['id']) {
            header("Location: ?menu={$module_name}&action=show&id=" . $_POST['id']);
        } else {
            header("Location: ?menu={$module_name}");
        }
    }
}
Esempio n. 3
0
function uploadImage($idUser, $pDB, &$error)
{
    $pACL = new paloACL($pDB);
    $pictureUpload = $_FILES['picture']['name'];
    $Exito = false;
    //valido el tipo de archivo
    // \w cualquier caracter, letra o guion bajo
    // \s cualquier espacio en blanco
    if (!preg_match("/^(\\w|-|\\.|\\(|\\)|\\s)+\\.(png|PNG|JPG|jpg|JPEG|jpeg)\$/", $pictureUpload)) {
        $error = _tr("Invalid file extension.- It must be png or jpg or jpeg");
    } elseif (preg_match("/(\\.php)/", $pictureUpload)) {
        $error = _tr("Possible file upload attack.");
    } else {
        if (is_uploaded_file($_FILES['picture']['tmp_name'])) {
            $ancho = 240;
            $alto = 200;
            redimensionarImagen($_FILES['picture']['tmp_name'], $_FILES['picture']['tmp_name'], $ancho, $alto);
            $picture_type = $_FILES['picture']['type'];
            $picture_content = file_get_contents($_FILES['picture']['tmp_name']);
            $Exito = $pACL->setUserPicture($idUser, $picture_type, $picture_content);
            if ($Exito === false) {
                $error = "Image couldn't be upload";
            }
        } else {
            $error = _tr("Possible file upload attack. Filename") . " : " . $pictureUpload;
        }
    }
    return $Exito;
}