/** * 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
/** * 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> </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; }