/** * Enregistrer le (nouveau) mot de passe du webmestre. * * @param string $password_ancien * @param string $password_nouveau * @return string 'ok' | 'Le mot de passe actuel est incorrect !' */ public static function modifier_mdp_webmestre($password_ancien, $password_nouveau) { // Tester si l'ancien mot de passe correspond à celui enregistré $password_ancien_crypte = crypter_mdp($password_ancien); if ($password_ancien_crypte != WEBMESTRE_PASSWORD_MD5) { return 'Le mot de passe actuel est incorrect !'; } // Remplacer par le nouveau mot de passe $password_nouveau_crypte = crypter_mdp($password_nouveau); FileSystem::fabriquer_fichier_hebergeur_info(array('WEBMESTRE_PASSWORD_MD5' => $password_nouveau_crypte)); return 'ok'; }
// Droits du système de fichiers - Choix UMASK // //////////////////////////////////////////////////////////////////////////////////////////////////// if($action=='choix_umask') { $tab_chmod = array( '000' => '777 / 666', '002' => '775 / 664', '022' => '755 / 644', '026' => '751 / 640', ); if(!isset($tab_chmod[$umask])) { exit('Valeur transmise inattendue ('.$umask.') !'); } FileSystem::fabriquer_fichier_hebergeur_info( array('SYSTEME_UMASK'=>$umask) ); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Droits du système de fichiers - Appliquer CHMOD // //////////////////////////////////////////////////////////////////////////////////////////////////// if($action=='appliquer_chmod') { $_SESSION['tmp'] = array(); // Récupérer l'arborescence $dossier_install = '.'; FileSystem::analyser_dossier( $dossier_install , strlen($dossier_install) , 'avant' , TRUE /*with_first_dir*/ ); // Pour l'affichage du retour $thead = '<tr><td colspan="2">Modification des droits du système de fichiers - '.date('d/m/Y H:i:s').'</td></tr>';
$tab_id = (isset($_POST['tab_id'])) ? explode(',',$_POST['tab_id']) : array() ; require(CHEMIN_DOSSIER_INCLUDE.'tableau_sso.php'); unset($tab_serveur_cas['']); $tab_cas_nom = array_merge( array('perso') , array_keys($tab_serveur_cas) ); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Choix des serveurs phpCAS sans vérif SSL // //////////////////////////////////////////////////////////////////////////////////////////////////// if($action=='Choix_serveurs') { // Nettoyer la liste transmise $tab_id = array_diff($tab_cas_nom, $tab_id); $serveurs_listing = count($tab_id) ? ','.implode(',',$tab_id).',' : '' ; // ok FileSystem::fabriquer_fichier_hebergeur_info( array( 'PHPCAS_NO_CERTIF_LISTING' => $serveurs_listing, ) ); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là... // //////////////////////////////////////////////////////////////////////////////////////////////////// exit('Erreur avec les données transmises !'); ?>
* * Ce fichier est une partie de SACoche. * * SACoche est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes * de la “GNU Affero General Public License” telle que publiée par la Free Software Foundation : * soit la version 3 de cette licence, soit (à votre gré) toute version ultérieure. * * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE : * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. * Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ; * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>. * */ if (!defined('SACoche')) { exit('Ce fichier ne peut être appelé directement !'); } $taille_max = isset($_POST['f_taille_max']) ? Clean::entier($_POST['f_taille_max']) : 0; $duree_conservation = isset($_POST['f_duree_conservation']) ? Clean::entier($_POST['f_duree_conservation']) : 0; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer des nouveaux réglages // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($taille_max && $duree_conservation) { FileSystem::fabriquer_fichier_hebergeur_info(array('FICHIER_TAILLE_MAX' => $taille_max, 'FICHIER_DUREE_CONSERVATION' => $duree_conservation)); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là ! // //////////////////////////////////////////////////////////////////////////////////////////////////// exit('Erreur avec les données transmises !');
* sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. * Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ; * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>. * */ if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');} $send_notification = (isset($_POST['f_send'])) ? Clean::texte($_POST['f_send']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer le choix effectué // //////////////////////////////////////////////////////////////////////////////////////////////////// if( in_array( $send_notification , array('oui','non') ) ) { FileSystem::fabriquer_fichier_hebergeur_info( array( 'COURRIEL_NOTIFICATION' => $send_notification ) ); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là... // //////////////////////////////////////////////////////////////////////////////////////////////////// exit('Erreur avec les données transmises !'); ?>
$bounce = isset($_POST['f_bounce']) ? Clean::courriel($_POST['f_bounce']) : ''; $courriel = isset($_POST['f_courriel']) ? Clean::courriel($_POST['f_courriel']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer le choix effectué // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'EnregistrerBounce') { // Vérifier le domaine du serveur mail seulement en mode multi-structures car ce peut être sinon une installation sur un serveur local non ouvert sur l'extérieur. if (HEBERGEUR_INSTALLATION == 'multi-structures') { if ($bounce) { list($mail_domaine, $is_domaine_valide) = tester_domaine_courriel_valide($bounce); if (!$is_domaine_valide) { exit('Erreur avec le domaine "' . $mail_domaine . '" !'); } } } FileSystem::fabriquer_fichier_hebergeur_info(array('HEBERGEUR_MAILBOX_BOUNCE' => $bounce)); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Test d'envoi de courriel // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'TestEnvoiCourriel' && $courriel) { list($mail_domaine, $is_domaine_valide) = tester_domaine_courriel_valide($courriel); if (!$is_domaine_valide) { exit('Erreur avec le domaine "' . $mail_domaine . '" ou serveur extérieur injoignable !'); } // Test d'envoi d'un courriel d'inscription $courriel_bilan = Sesamail::mail($courriel, 'Test d\'envoi d\'un courriel d\'inscription', 'Avec par défaut les coordonnées du webmestre en Reply-To.'); if (!$courriel_bilan) { exit('Erreur lors de l\'envoi du courriel de test n°1 !'); }
if(defined('WEBMESTRE_ERREUR_DATE')) { $tab_constantes_modifiees += array( 'WEBMESTRE_ERREUR_DATE' => '' ); // Appeler fabriquer_fichier_hebergeur_info() sans paramètre suffit en fait à retirer la constante } // A compter du 17/09/2015, retrait du paramètre listant les ENT sans certif SSL (désormais gestion au cas par cas par les établissements) if(defined('PHPCAS_NO_CERTIF_LISTING')) { $tab_constantes_modifiees += array( 'PHPCAS_NO_CERTIF_LISTING' => '' ); // Appeler fabriquer_fichier_hebergeur_info() sans paramètre suffit en fait à retirer la constante } // A compter du 17/09/2015, 2 constantes renommées if(!defined('PHPCAS_LOGS_CHEMIN')) { $chemin = defined('PHPCAS_CHEMIN_LOGS') ? PHPCAS_CHEMIN_LOGS : CHEMIN_DOSSIER_TMP ; $tab_constantes_modifiees += array( 'PHPCAS_LOGS_CHEMIN' => $chemin ); } if(!defined('PHPCAS_LOGS_ETABL_LISTING')) { $liste = defined('PHPCAS_ETABL_ID_LISTING') ? PHPCAS_ETABL_ID_LISTING : '' ; $tab_constantes_modifiees += array( 'PHPCAS_LOGS_ETABL_LISTING' => $liste ); } // Application patch si besoin if(count($tab_constantes_modifiees)) { FileSystem::fabriquer_fichier_hebergeur_info($tab_constantes_modifiees); } ?>
$proxy_auth_pass = (isset($_POST['f_proxy_auth_pass'])) ? Clean::texte($_POST['f_proxy_auth_pass']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Tester les réglages actuellement enregistrés // //////////////////////////////////////////////////////////////////////////////////////////////////// if($action=='tester') { $requete_reponse = cURL::get_contents(SERVEUR_VERSION); $affichage = (preg_match('#^[0-9]{4}\-[0-9]{2}\-[0-9]{2}[a-z]?$#',$requete_reponse)) ? '<label class="valide">Échange réussi avec le serveur '.SERVEUR_PROJET.'</label>' : '<label class="erreur">Échec de l\'échange avec le serveur '.SERVEUR_PROJET.' → '.$requete_reponse.'</label>' ; exit('<h2>Résultat du test</h2>'.$affichage); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer des nouveaux réglages // //////////////////////////////////////////////////////////////////////////////////////////////////// FileSystem::fabriquer_fichier_hebergeur_info( array( 'SERVEUR_PROXY_USED' => $proxy_used, 'SERVEUR_PROXY_NAME' => $proxy_name, 'SERVEUR_PROXY_PORT' => $proxy_port, 'SERVEUR_PROXY_TYPE' => $proxy_type, 'SERVEUR_PROXY_AUTH_USED' => $proxy_auth_used, 'SERVEUR_PROXY_AUTH_METHOD' => $proxy_auth_method, 'SERVEUR_PROXY_AUTH_USER' => $proxy_auth_user, 'SERVEUR_PROXY_AUTH_PASS' => $proxy_auth_pass, ) ); exit('ok'); ?>
* Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ; * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>. * */ if (!defined('SACoche')) { exit('Ce fichier ne peut être appelé directement !'); } $f_user = isset($_POST['f_user']) ? Clean::texte($_POST['f_user']) : ''; $f_mail = isset($_POST['f_mail']) ? Clean::texte($_POST['f_mail']) : ''; $f_domaine = isset($_POST['f_domaine']) ? Clean::texte($_POST['f_domaine']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer des nouveaux réglages // //////////////////////////////////////////////////////////////////////////////////////////////////// if (in_array($f_user, array('oui', 'non')) && in_array($f_mail, array('oui', 'non', 'domaine')) && ($f_mail != 'domaine' || $f_domaine)) { if ($f_mail == 'domaine') { // Vérifier le domaine du serveur mail (multi-structures donc serveur ouvert sur l'extérieur). list($mail_domaine, $is_domaine_valide) = tester_domaine_courriel_valide('username@' . $f_domaine); if (!$is_domaine_valide) { exit('Erreur avec le domaine "' . $mail_domaine . '" !'); } $f_mail = $f_domaine; } FileSystem::fabriquer_fichier_hebergeur_info(array('CONTACT_MODIFICATION_USER' => $f_user, 'CONTACT_MODIFICATION_MAIL' => $f_mail)); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là ! // //////////////////////////////////////////////////////////////////////////////////////////////////// exit('Erreur avec les données transmises !');
FileSystem::fabriquer_fichier_hebergeur_info( array( 'HEBERGEUR_INSTALLATION' => $installation, 'HEBERGEUR_DENOMINATION' => $denomination, 'HEBERGEUR_UAI' => $uai, 'HEBERGEUR_ADRESSE_SITE' => $adresse_site, 'HEBERGEUR_LOGO' => '', 'HEBERGEUR_MAILBOX_BOUNCE' => '', 'CNIL_NUMERO' => 'non renseignée', 'CNIL_DATE_ENGAGEMENT' => '', 'CNIL_DATE_RECEPISSE' => '', 'WEBMESTRE_NOM' => $nom, 'WEBMESTRE_PRENOM' => $prenom, 'WEBMESTRE_COURRIEL' => $courriel, 'WEBMESTRE_PASSWORD_MD5' => crypter_mdp($password), 'SERVEUR_PROXY_USED' => '', 'SERVEUR_PROXY_NAME' => '', 'SERVEUR_PROXY_PORT' => '', 'SERVEUR_PROXY_TYPE' => '', 'SERVEUR_PROXY_AUTH_USED' => '', 'SERVEUR_PROXY_AUTH_METHOD' => '', 'SERVEUR_PROXY_AUTH_USER' => '', 'SERVEUR_PROXY_AUTH_PASS' => '', 'FICHIER_TAILLE_MAX' => 500, 'FICHIER_DUREE_CONSERVATION' => 12, 'PHPCAS_LOGS_CHEMIN' => CHEMIN_DOSSIER_TMP, 'PHPCAS_LOGS_ETABL_LISTING' => '', 'SYSTEME_UMASK' => '000', 'CONTACT_MODIFICATION_USER' => 'non', 'CONTACT_MODIFICATION_MAIL' => 'non', 'COURRIEL_NOTIFICATION' => 'oui', ) );
FileSystem::fabriquer_fichier_hebergeur_info(array('HEBERGEUR_LOGO' => '')); } exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer le nouveau fichier de paramètres // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'enregistrer' && $denomination && $nom && $prenom && $courriel) { // Vérifier le domaine du serveur mail seulement en mode multi-structures car ce peut être sinon une installation sur un serveur local non ouvert sur l'extérieur. if (HEBERGEUR_INSTALLATION == 'multi-structures') { list($mail_domaine, $is_domaine_valide) = tester_domaine_courriel_valide($courriel); if (!$is_domaine_valide) { exit('Erreur avec le domaine "' . $mail_domaine . '" !'); } } FileSystem::fabriquer_fichier_hebergeur_info(array('HEBERGEUR_DENOMINATION' => $denomination, 'HEBERGEUR_UAI' => $uai, 'HEBERGEUR_ADRESSE_SITE' => $adresse_site, 'HEBERGEUR_LOGO' => $logo, 'CNIL_NUMERO' => $cnil_numero, 'CNIL_DATE_ENGAGEMENT' => $cnil_date_engagement, 'CNIL_DATE_RECEPISSE' => $cnil_date_recepisse, 'WEBMESTRE_NOM' => $nom, 'WEBMESTRE_PRENOM' => $prenom, 'WEBMESTRE_COURRIEL' => $courriel)); if (HEBERGEUR_INSTALLATION == 'mono-structure') { // Personnaliser certains paramètres de la structure (pour une installation de type multi-structures, ça se fait à la page de gestion des établissements) $tab_parametres = array(); $tab_parametres['webmestre_uai'] = $uai; $tab_parametres['webmestre_denomination'] = $denomination; DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); } // On modifie aussi la session $_SESSION['USER_NOM'] = $nom; $_SESSION['USER_PRENOM'] = $prenom; exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Il se peut que rien n'ait été récupéré à cause de l'upload d'un fichier trop lourd // ////////////////////////////////////////////////////////////////////////////////////////////////////
exit('Chemin invalide (le dossier n\'existe pas) !'); } // Tester droits en écriture if (!FileSystem::ecrire_fichier_si_possible($chemin_logs . 'debugcas_test_ecriture.txt', 'ok')) { exit('Droits en écriture dans le dossier insuffisants !'); } FileSystem::supprimer_fichier($chemin_logs . 'debugcas_test_ecriture.txt'); // Nettoyer la liste des établissements transmise if ($etabl_id_listing) { $tab_etabl_id = explode(',', $etabl_id_listing); $tab_etabl_id = Clean::map_entier($tab_etabl_id); $tab_etabl_id = array_filter($tab_etabl_id, 'positif'); $etabl_id_listing = count($tab_etabl_id) ? ',' . implode(',', $tab_etabl_id) . ',' : ''; } // ok FileSystem::fabriquer_fichier_hebergeur_info(array('PHPCAS_CHEMIN_LOGS' => $chemin_logs, 'PHPCAS_ETABL_ID_LISTING' => $etabl_id_listing)); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Effacer un fichier de logs de phpCAS // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'supprimer' && $fichier_logs) { FileSystem::supprimer_fichier(PHPCAS_CHEMIN_LOGS . $fichier_logs . '.txt', TRUE); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupérer un fichier de logs de phpCAS // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'voir' && $fichier_logs) { FileSystem::zip(CHEMIN_DOSSIER_EXPORT . $fichier_logs . '.zip', $fichier_logs . '.txt', file_get_contents(PHPCAS_CHEMIN_LOGS . $fichier_logs . '.txt')); exit('<ul class="puce"><li><a target="_blank" href="' . URL_DIR_EXPORT . $fichier_logs . '.zip' . '"><span class="file file_zip">Fichier de logs au format <em>zip</em>.</li></ul>');