Exemplo n.º 1
0
 /**
  * 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.' &rarr; '.$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 !');
Exemplo n.º 10
0
 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
// ////////////////////////////////////////////////////////////////////////////////////////////////////
Exemplo n.º 12
0
        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>');