示例#1
0
 /**
  * On supprime les droits sur id intranet actions de l'utilisateur connecté 
  * correspondants à l'id intranet actions parents en cours
  * @param int $paramIdUser
  * @param int $paramIdIntranetModule
  * @param int $paramIdIntranetAction
  * @return boolean
  */
 private static function eraseUserRightOnIntranetAction($paramIdUser, $paramIdIntranetModule, $paramIdIntranetAction)
 {
     return IntranetDroitsAccesModel::eraseUserRightsAcces($paramIdUser, $paramIdIntranetModule, $paramIdIntranetAction);
 }
*/
$page_default = substr(strrchr($_SERVER["PHP_SELF"], '/'), '1', '-4');
$page_action = $page_default . "_post.php";
$page_pdf = $page_default . "_pdf.php";
$action = 'valider';
//Action proposée à la page _post.php
$method = 'POST';
//Pour une url > 2000 caractères, ne pas utiliser utiliser GET
$html_table = "table " . "border=1 " . "width=100% " . "class=contenu ";
/*
 Récupération des données MySQL
*/
//echo $module;
$intranetModulesModel = new IntranetModulesModel(IntranetModulesModel::ID_MODULES_FTA);
$nom_usuel_intranet_modules = $intranetModulesModel->getDataField(IntranetModulesModel::FIELDNAME_NOM_USUEL_INTRANET_MODULES)->getFieldValue();
$bloc .= IntranetDroitsAccesModel::getHtmlArrayAccesRightUser();
//foreach ($result_action as $rows_action) {
//    foreach ($result_user as $rows_user) {
//        $bloc .= "<tr><td>" . $rows_user[UserModel::FIELDNAME_PRENOM] . " " . $rows_user[UserModel::FIELDNAME_NOM] . "</td>";
//
//        if ($rows_user[IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES] <> 1) {
//            $bloc .= "<td>Niveau = " . $rows_user[IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES] . "</<td></tr>";
//        }
//    }
//}
/*
 Sélection du mode d'affichage
*/
switch ($output) {
    /*     * ***********
          Début Code PDF
示例#3
0
 /**
  * Affiche la liste des site de production pour lesquel l'utilisateur connecté à les droits d'accès 
  * et l'identifiant de la Fta en cours
  * @param int $paramIdUser
  * @param HtmlListSelect $paramHtmlObjet
  * @param boolean $paramIsEditable
  * @return string
  */
 function showListeDeroulanteSiteProdByAccesAndIdFta($paramIdUser, HtmlListSelect $paramHtmlObjet, $paramIsEditable)
 {
     /**
      * Datafield site de production
      */
     $dataFieldSiteDeProduction = $this->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION);
     /**
      * Modification
      */
     $ftaModification = IntranetDroitsAccesModel::getFtaModification($paramIdUser);
     /**
      * Consultation
      */
     $ftaConsultation = IntranetDroitsAccesModel::getFtaConsultation($paramIdUser);
     /**
      * Si l'utilisateur a les droits en consultation sur le module et pas en modification
      * Transmettre à $paramHtmlObjet la liste de tous les sites taggés "fta".
      * 
      * Si il a accès en consultation et modification alors
      */
     if ($ftaConsultation and $ftaModification) {
         $idFtaWorkflow = $this->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue();
         $arraySite = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . GeoModel::KEYNAME . ',' . GeoModel::FIELDNAME_GEO . ' FROM ' . GeoModel::TABLENAME . ', ' . FtaActionSiteModel::TABLENAME . ', ' . IntranetActionsModel::TABLENAME . ', ' . IntranetDroitsAccesModel::TABLENAME . ', ' . FtaWorkflowModel::TABLENAME . ' WHERE ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . GeoModel::KEYNAME . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . ' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::KEYNAME . '=' . $idFtaWorkflow . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $paramIdUser . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' ORDER BY ' . GeoModel::FIELDNAME_GEO);
     } elseif ($ftaConsultation) {
         $arraySite = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . GeoModel::KEYNAME . ',' . GeoModel::FIELDNAME_GEO . ' FROM ' . GeoModel::TABLENAME . ' WHERE ' . GeoModel::FIELDNAME_TAG_APPLICATION_GEO . ' LIKE \'%fta%\'' . ' ORDER BY ' . GeoModel::FIELDNAME_GEO);
     }
     $paramHtmlObjet->setArrayListContent($arraySite);
     /**
      * On vérifie si le champ est verrouillable
      */
     $dataFieldSiteDeProduction->checkLockField($this, $paramIsEditable);
     /**
      * On autorise la modification selon l'état de champs verrouillable
      */
     $isEditable = FtaVerrouillageChampsModel::isEditableLockField($dataFieldSiteDeProduction->getIsFieldLock(), $paramIsEditable);
     /**
      * Verification des règles de validation
      */
     $dataFieldSiteDeProduction->checkValidationRules();
     if ($dataFieldSiteDeProduction->getDataValidationSuccessful() == TRUE) {
         $this->setDataValidationSuccessfulToTrue();
     } else {
         $this->setDataValidationSuccessfulToFalse();
     }
     $HtmlTableName = FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_SITE_PRODUCTION . '_' . $this->getKeyValue();
     $paramHtmlObjet->getAttributes()->getName()->setValue(FtaModel::FIELDNAME_SITE_PRODUCTION);
     $paramHtmlObjet->setLabel(DatabaseDescription::getFieldDocLabel(GeoModel::TABLENAME, GeoModel::FIELDNAME_GEO));
     $paramHtmlObjet->setIsEditable($isEditable);
     $paramHtmlObjet->initAbstractHtmlSelect($HtmlTableName, $paramHtmlObjet->getLabel(), $dataFieldSiteDeProduction->getFieldValue(), $dataFieldSiteDeProduction->isFieldDiff(), $paramHtmlObjet->getArrayListContent(), $dataFieldSiteDeProduction->getDataValidationSuccessful(), $dataFieldSiteDeProduction->getDataWarningMessage(), $dataFieldSiteDeProduction->getIsFieldLock(), $dataFieldSiteDeProduction->getLinkFieldLock());
     $paramHtmlObjet->getEventsForm()->setOnChangeWithAjaxAutoSave(FtaModel::TABLENAME, FtaModel::KEYNAME, $this->getKeyValue(), FtaModel::FIELDNAME_SITE_PRODUCTION);
     /**
      * Description d'un champ
      */
     $paramHtmlObjet->setHelp(IntranetColumnInfoModel::getFieldDesc($dataFieldSiteDeProduction->getTableName(), $dataFieldSiteDeProduction->getFieldName(), $dataFieldSiteDeProduction->getFieldLabel(), $paramHtmlObjet));
     $listeSiteProduction = $paramHtmlObjet->getHtmlResult();
     return $listeSiteProduction;
 }
 //    $selection_proprietaire2 = Lib::getParameterFromRequest('selection_proprietaire2');
 //    $selection_marque = Lib::getParameterFromRequest('selection_marque');
 //    $selection_activite = Lib::getParameterFromRequest('selection_activite');
 //    $selection_rayon = Lib::getParameterFromRequest('selection_rayon');
 //    $selection_environnement = Lib::getParameterFromRequest('selection_environnement');
 //    $selection_reseau = Lib::getParameterFromRequest('selection_reseau');
 //    $selection_saisonnalite = Lib::getParameterFromRequest('selection_saisonnalite');
 //    $checkIdFtaClasssification = Lib::getParameterFromRequest('checkIdFtaClasssification');
 /**
  * On vérifie si l'utilisateur à les droits d'accès sur une Fta en état de modification
  */
 if ($abreviationFtaEtat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION and $ftaModification) {
     if ($idFtaRole == FtaRoleModel::ID_FTA_ROLE_COMMUN) {
         $arrayIdFtaRoleAcces = FtaRoleModel::getArrayIdFtaRoleByIdUserAndWorkflow($idUser, $idWorkflowFtaEncours);
     }
     $checkAccesButtonBySiteProd = IntranetDroitsAccesModel::isIdUserHaveRightsOnSiteProdByWorkflow($idUser, $idWorkflowFtaEncours, $idSiteDeProduction);
     if (!$arrayIdFtaRoleAcces and !$checkAccesButtonBySiteProd or !$checkAccesButtonBySiteProd) {
         $titre = UserInterfaceMessage::FR_WARNING_ACCES_RIGHTS_TITLE;
         $message = UserInterfaceMessage::FR_WARNING_ACCES_RIGHTS;
         $redirection = "index.php";
         Lib::showMessage($titre, $message, $redirection);
     } else {
         /**
          * On affecte un IdFtaRole seulement dans le cas ou on est vient de la page de recherche
          */
         if ($idFtaRole == FtaRoleModel::ID_FTA_ROLE_COMMUN) {
             $idFtaRole = $arrayIdFtaRoleAcces["0"];
         }
     }
 } elseif ($ftaModification) {
     /**
        echo '>' . $rowsLieuGeo[GeoModel::FIELDNAME_GEO] . '</option>';
    }
}
echo '</select>';
?>
                                            </center>
                                            </td>
                                        </table>  
                                        <br>                 
                                        <?php 
/*                                         * ***************************************************
                                          Construction des droits d'accès pour tous les modules:
                                         * ***************************Boris Sanègre  2003.03.25 
                                         * ***************************Franck Amofa 2015.08.07 */
// require ('droits_acces.inc');
IntranetDroitsAccesModel::buildHtmlDroitsAcces($paramIdUser);
?>
                                        <table width='500' border='0' cellspacing='4' cellpadding='0' align='center'>
                                            <tr>
                                                <td>
                                                    <div align='center'><img src='../images_pop/affectation_droits.gif' width='500' height='30'></div>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td><img src=../lib/images/espaceur.gif width='10' height='10'></td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <table width='350' border='0' cellspacing='0' cellpadding='0' align='center'>
                                                        <tr>
                                                            <td colspan='2'>
    foreach ($arrayLieuGeo as $rowsLieuGeo) {
        echo '<option value=\'' . $rowsLieuGeo[GeoModel::KEYNAME] . '\'>' . $rowsLieuGeo[GeoModel::FIELDNAME_GEO] . '</option>';
    }
}
echo '</select>';
?>
                    </center>
                    </td>
                    </tr>
                </table><br>
                <?php 
/*
 * Construction des droits d'accès pour tous les modules:
 * Boris Sanègre 2003.03.25                
 */
IntranetDroitsAccesModel::buildHtmlDroitsAcces();
// Fin de la page
echo '<center>';
echo '<a href=# onClick=nonvide();><img src=../zimages/valider-j.gif width=130 height=20 border=0 alt=`Enregistrement d\'un salarié`></a>';
echo '<input type=hidden name=valider value=valider>';
echo '</center>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '</table>';
echo '</form>';
include '../adminagis/cadrebas.php';
echo '</body>';
echo '</html>';
          Mise à jour des droits d'accès de l'utilisateur
         * ********************Boris Sanègre 2003.03.28**
         * ********************Boris Sanègre 2007.01.09 */
    /**
     * Drois d'accès au module Fta
     */
    IntranetDroitsAccesModel::manageAccesRightToFta($idUser);
    /**
     * Initialisation
     */
    $paramConsultation = Lib::getParameterFromRequest('consultation_1');
    $paramModification = Lib::getParameterFromRequest('modification_2');
    /*
     * Récupération des droits d'accès faisable dans l'Intranet
     */
    IntranetDroitsAccesModel::manageAccesRightToIntranet($idUser, TRUE, $paramConsultation, $paramModification);
    /**
     * Post-traitement
     * Vérification et correction des incohérences de droits d'accès.
     */
    Acl::checkHeritedRightsRemovedByUser($idUser);
}
/*
 * Fin de if($modifier=='modifier')
 */
/*
 *  Suppression de l'utilisateur
 */
//if ($paramModifier == 'supprimer') {
//    UserModel::suppressionIntranetUtilisateur($idUser);
//}
echo '</div>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<br>';
echo '</td>';
echo '</tr>';
/**
 * Drois d'accès au module Fta
 */
IntranetDroitsAccesModel::manageAccesRightToFta($idUser);
//Droits d'accès du module
/*
 * Récupération des droits d'accès de l'Intranet
 */
IntranetDroitsAccesModel::manageAccesRightToIntranet($idUser, FALSE);
/**
 * Post-traitement
 * Vérification et correction des incohérences de droits d'accès.
 */
Acl::checkHeritedRightsRemovedByUser($idUser);
echo '<br>';
?>
                                                            </table>
                                                            </form>
                                                            <?php 
include '../adminagis/cadrebas.php';
?>
                                                            </body>
                                                            </html>
 /**
  * Correction d'une FTA
  * Pour une FTA données, correction d'un chapitre et dévalidation des processus suivants
  * @param type $paramIdFta
  * @param type $paramIdChapitre
  * @param type $option
  * @return int
  */
 public static function buildCorrectionChapitre($paramIdFta, $paramIdChapitre, $option)
 {
     $option['no_message_ecran'];
     //0=affichage à l'ecran, 1=rien
     $option['correction_fta_suivi_projet'];
     //Commentaire justifiant la correction du chapitre
     $option['mail_gestionnaire'];
     //Informe le gestionnaire de la Fta de la mise en correction de sa Fta
     $HtmlResult = new HtmlResult2();
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     //Récupération des informations préalables
     //Nom de l'assistante de projet responsable:
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $mailExpediteur = $globalConfig->getAuthenticatedUser()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue();
     $nomPrenom = $globalConfig->getAuthenticatedUser()->getPrenomNom();
     $idFtaWorkflowStructure = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre);
     $ftaWorkflowStructureModel = new FtaWorkflowStructureModel($idFtaWorkflowStructure, $paramIdChapitre);
     $idFtaProcessus = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue();
     $idFtaWorkflow = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW)->getFieldValue();
     $arrayFtaSuiviCorrection = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . ',' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . ' FROM ' . FtaSuiviProjetModel::TABLENAME . ' WHERE ' . FtaModel::KEYNAME . '=' . $paramIdFta . ' AND ' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . $paramIdChapitre . ' ');
     if ($arrayFtaSuiviCorrection) {
         foreach ($arrayFtaSuiviCorrection as $rowsFtaSuiviCorrection) {
             $current_correction_fta_suivi_projet = $rowsFtaSuiviCorrection[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET];
             $notificationFtaSuiviProjet = $rowsFtaSuiviCorrection[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET];
         }
     }
     //Intégration du commentaire de la correction
     if ($current_correction_fta_suivi_projet and $option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]) {
         $fullComment = $option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET] . '\\n\\n' . $current_correction_fta_suivi_projet;
         $newCorrectionFtaSuiviProjet = FtaController::getComment("Correction d'une Fta", $nomPrenom, $fullComment);
     }
     //        $newCorrectionFtaSuiviProjet = mysql_real_escape_string($newCorrectionFtaSuiviProjet);
     $newCorrectionFtaSuiviProjet = str_replace("<br/>", "\n", $newCorrectionFtaSuiviProjet);
     //Dévalidation du chapitre en cours
     $reqDevelidationChapitre = " UPDATE " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "=0, " . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . "=\"" . $newCorrectionFtaSuiviProjet . "\" " . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFta . " AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "=" . $paramIdChapitre;
     DatabaseOperation::execute($reqDevelidationChapitre);
     /*
      * Mise à jour de la validation de l'échéance du processus
      * fonction non utilisé
      */
     // FtaProcessusDelaiModel::BuildFtaProcessusValidationDelai($paramIdFta, $idFtaProcessus, $idFtaWorkflow);
     //Dévalidation des processus suivants
     $return = FtaChapitreModel::buildDevalidationChapitre($paramIdFta, $idFtaProcessus, $HtmlResult);
     /**
      * Actualisation du pourcentage de validation de la Fta
      */
     $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre);
     $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet);
     $modelFtaSuiviProjet->unsetSigned();
     $modelFtaSuiviProjet->saveToDatabase();
     //print_r($return['mail']);      //Tableau contenant les adresses emails des personnes concernées par la dévalidation
     if (count($return) > 1) {
         $return['processus'] = array_unique($return['processus']);
         //Tableau contenant les identifiants des processus dévalidés unique
     }
     if (is_string($return['processus'])) {
         $return['processus'] = array('processus' => $return['processus']);
     }
     //Informations
     if ($return['processus']) {
         foreach ($return['processus'] as $id_Fta_Processus) {
             $idFtaProcessus = $id_Fta_Processus;
             $arrayFtaProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusModel::FIELDNAME_NOM . ' FROM ' . FtaProcessusModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . $idFtaProcessus . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $idFtaWorkflow);
             if ($arrayFtaProcessus) {
                 foreach ($arrayFtaProcessus as $rowsFtaProcessus) {
                     $message .= $rowsFtaProcessus[FtaProcessusModel::FIELDNAME_NOM] . '<br>';
                 }
             }
         }
         if (!$message) {
             $message = 'Aucun processus n\'a été dévalidé.';
         }
         $titre = 'Liste des Processus dévalidés';
         if (!$option['no_message_ecran']) {
             Lib::showMessage($titre, $message, $redirection);
         }
         //Envoi des mails
         $show_din = FtaModel::showDin($paramIdFta);
         $sujetElements = $show_din;
         if ($return['mail']) {
             $return['mail'] = array_unique($return['mail']);
             foreach ($return['mail'] as $mail) {
                 $sujetmail = 'FTA/Correction: ' . $sujetElements;
                 $destinataire = $mail;
                 $expediteur = $nomPrenom . ' <' . $mailExpediteur . '>';
                 $text = 'Vos chapitres viennent d\'être dévalidés suite à une correction apportée par ' . $nomPrenom . '.\\n\\n' . 'OBJET DE LA CORRECTION:\\n' . '\\t' . stripslashes($option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]);
                 $typeMail = 'Correction';
                 if ($notificationFtaSuiviProjet) {
                     envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail);
                 }
             }
         }
         /**
          * Génération d'un mail informant le gestionnaire de la Fta
          */
         if ($option['mail_gestionnaire']) {
             $ftaModel = new FtaModel($paramIdFta);
             $idGestionnaire = $ftaModel->getModelCreateur()->getKeyValue();
             //Tableau des id intranet actions Fta
             $arrayAction = IntranetDroitsAccesModel::getArrayIdIntranetActionWithAccesRightsToFtaByUser($idGestionnaire);
             $checkDiffusion = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_DIFFUSION, $arrayAction);
             if ($idGestionnaire != $idUser and $checkDiffusion) {
                 $mailGestionnaire = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue();
                 $sujetmail = 'FTA/Mise en Correction: ' . $sujetElements . ' par ' . $nomPrenom;
                 $destinataire = $mailGestionnaire;
                 $expediteur = $nomPrenom . ' <' . $mailExpediteur . '>';
                 $text = 'Une nouvelle version vient d\'être crée, la correction apportée par ' . $nomPrenom . ' est au sujet de :\\n' . '\\t' . stripslashes($option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]);
                 $typeMail = 'CorrectionValidation2Modification';
                 envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail);
             }
         }
     }
     //Fin du traitement des processus suivants
     return 1;
 }